diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4eec7e7 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.18) +project(tools) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror -pedantic-errors -O0") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror -pedantic-errors") + +file(GLOB items RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/*) +foreach(item ${items}) + string(REGEX MATCH "^[^\.].*" dot ${item}) + if(("${dot}" STREQUAL "") OR (${item} STREQUAL "build")) + continue() + endif() + if(IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${item}) + message(STATUS ${item}) + add_subdirectory(${PROJECT_SOURCE_DIR}/${item}) + endif() +endforeach() diff --git a/loop_per_thread/Makefile b/Makefile similarity index 94% rename from loop_per_thread/Makefile rename to Makefile index 08012c1..9718099 100644 --- a/loop_per_thread/Makefile +++ b/Makefile @@ -20,4 +20,4 @@ all: cd build && cmake -DCMAKE_BUILD_TYPE=$(FLAG) .. && cmake --build . -- -j$(JOBS) clean: - @rm -rf bin build lib + @rm -rf build diff --git a/bloom/CMakeLists.txt b/bloom/CMakeLists.txt index 5d73bf8..09160db 100644 --- a/bloom/CMakeLists.txt +++ b/bloom/CMakeLists.txt @@ -1,12 +1,4 @@ -cmake_minimum_required(VERSION 3.15) -project(bloom) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -include_directories(${PROJECT_SOURCE_DIR}/murmur3) - +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/murmur3) add_subdirectory(murmur3) add_executable(bloom bloom.h main.cpp) target_link_libraries(bloom murmur3) \ No newline at end of file diff --git a/cfg/CMakeLists.txt b/cfg/CMakeLists.txt new file mode 100644 index 0000000..1310350 --- /dev/null +++ b/cfg/CMakeLists.txt @@ -0,0 +1 @@ +add_executable(hash test_hash.cpp) \ No newline at end of file diff --git a/channel/CMakeLists.txt b/channel/CMakeLists.txt new file mode 100644 index 0000000..bb9f3ef --- /dev/null +++ b/channel/CMakeLists.txt @@ -0,0 +1,3 @@ +find_package(Threads) +add_executable(mpsc test.cpp) +target_link_libraries(mpsc Threads::Threads) \ No newline at end of file diff --git a/coroutine/CMakeLists.txt b/coroutine/CMakeLists.txt index 9dee993..6565af7 100644 --- a/coroutine/CMakeLists.txt +++ b/coroutine/CMakeLists.txt @@ -1,7 +1,3 @@ -cmake_minimum_required(VERSION 3.10) -project(coroutine) - -set(CMAKE_CXX_STANDARD 17) enable_language(ASM_NASM) set(SWITCH_STACK switch_stack.asm) diff --git a/crypt/CMakeLists.txt b/crypt/CMakeLists.txt index 6e60151..65d3f35 100644 --- a/crypt/CMakeLists.txt +++ b/crypt/CMakeLists.txt @@ -1,13 +1,2 @@ -cmake_minimum_required(VERSION 3.6) -project(crypto CXX) - -set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -O0") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s -Wall") -SET(BUILD_SHARED_LIBRARIES OFF) -SET(CMAKE_EXE_LINKER_FLAGS "-static") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14") - add_executable(decrypt decrypt.cpp) - -add_executable(encrypt encrypt.cpp) +add_executable(encrypt encrypt.cpp) \ No newline at end of file diff --git a/crypt/encrypt.cpp b/crypt/encrypt.cpp index d58c563..696f20a 100644 --- a/crypt/encrypt.cpp +++ b/crypt/encrypt.cpp @@ -51,4 +51,4 @@ int main(int argc, char* argv[]) of.write("\t", 1); of << res; of.close(); -}; +} diff --git a/fake_variant/CMakeLists.txt b/fake_variant/CMakeLists.txt new file mode 100644 index 0000000..c9615e2 --- /dev/null +++ b/fake_variant/CMakeLists.txt @@ -0,0 +1 @@ +add_executable(fake_variant test.cpp) \ No newline at end of file diff --git a/file_sort/CMakeLists.txt b/file_sort/CMakeLists.txt new file mode 100644 index 0000000..30438b1 --- /dev/null +++ b/file_sort/CMakeLists.txt @@ -0,0 +1,3 @@ +add_executable(file_sort_bit bit.cpp) +add_executable(file_sort_bs bs.cpp) +add_executable(file_sort_rand rand.cpp) \ No newline at end of file diff --git a/file_sort/bs.cpp b/file_sort/bs.cpp index 27c27f8..a295846 100644 --- a/file_sort/bs.cpp +++ b/file_sort/bs.cpp @@ -87,9 +87,9 @@ class Bigdata FILE* fd = fopen(out_.c_str(), "w"); if(fd == nullptr) failure(__func__, __LINE__); - FILE* fds[count_]; - long data[count_]; - bool done[count_]; + std::vector fds(count_); + std::vector data(count_); + std::vector done(count_); char name[50]; for(long i = 0; i < count_; ++i) { diff --git a/fm/CMakeLists.txt b/fm/CMakeLists.txt new file mode 100644 index 0000000..2fe8c02 --- /dev/null +++ b/fm/CMakeLists.txt @@ -0,0 +1 @@ +add_executable(functor_map test.cpp) \ No newline at end of file diff --git a/form_parser/CMakeLists.txt b/form_parser/CMakeLists.txt index 4a322be..5c43ce7 100644 --- a/form_parser/CMakeLists.txt +++ b/form_parser/CMakeLists.txt @@ -1,6 +1 @@ -cmake_minimum_required(VERSION 3.10) -project(form_parser) - -set(CMAKE_CXX_STANDARD 11) - add_executable(form_parser form_parser.h main.cpp) \ No newline at end of file diff --git a/json/CMakeLists.txt b/json/CMakeLists.txt index 84a60be..ee7fefd 100644 --- a/json/CMakeLists.txt +++ b/json/CMakeLists.txt @@ -1,6 +1 @@ -cmake_minimum_required(VERSION 3.19) -project(json) - -set(CMAKE_CXX_STANDARD 17) - add_executable(json json.h main.cpp) \ No newline at end of file diff --git a/logging/CMakeLists.txt b/logging/CMakeLists.txt index d0d6966..2b8fa3f 100644 --- a/logging/CMakeLists.txt +++ b/logging/CMakeLists.txt @@ -1,12 +1,4 @@ -cmake_minimum_required(VERSION 3.8) -project(logging) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror -pedantic-errors -O0") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror -pedantic-errors") - -set(SOURCE_FILES - logging.h test.cpp) +set(SOURCE_FILES logging.h test.cpp) add_executable(logging_test ${SOURCE_FILES}) target_link_libraries(logging_test pthread) diff --git a/loop_per_thread/CMakeLists.txt b/loop_per_thread/CMakeLists.txt index 61f9801..06561be 100644 --- a/loop_per_thread/CMakeLists.txt +++ b/loop_per_thread/CMakeLists.txt @@ -1,11 +1,3 @@ -cmake_minimum_required(VERSION 3.6) -project(loop_per_thread CXX) - -set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -O0") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s -Wall") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14") find_package(Boost 1.61 REQUIRED system) add_executable(server server.cpp) diff --git a/loop_per_thread/server1.cpp b/loop_per_thread/server1.cpp index 8a3abfe..ef7990c 100644 --- a/loop_per_thread/server1.cpp +++ b/loop_per_thread/server1.cpp @@ -9,9 +9,11 @@ #include #include -class Service : boost::noncopyable, public std::enable_shared_from_this +class Service : public std::enable_shared_from_this { public: + Service(const Service&) = delete; + Service& operator=(const Service&) = delete; Service(std::shared_ptr sock) : socket_(sock), msg_("pong\n") {} static std::shared_ptr make_service(std::shared_ptr sock) @@ -64,7 +66,7 @@ class Service : boost::noncopyable, public std::enable_shared_from_this } }; -class Acceptor : boost::noncopyable +class Acceptor { public: Acceptor(boost::asio::io_service* io, boost::asio::ip::tcp::endpoint&& ep) @@ -73,6 +75,9 @@ class Acceptor : boost::noncopyable std::atomic_init(&is_quit_, false); } + Acceptor(const Acceptor&) = delete; + Acceptor& operator=(const Acceptor&) = delete; + void start() { acceptor_.listen(SOMAXCONN); // default SOMAXCONN is 128 diff --git a/meta/CMakeLists.txt b/meta/CMakeLists.txt new file mode 100644 index 0000000..e69de29 diff --git a/optional/CMakeLists.txt b/optional/CMakeLists.txt index dbd86c4..53a0289 100644 --- a/optional/CMakeLists.txt +++ b/optional/CMakeLists.txt @@ -1,7 +1 @@ -cmake_minimum_required(VERSION 3.10) -project(optional CXX) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -add_executable(optional optional.h main.cpp) +add_executable(optional optional.h main.cpp) \ No newline at end of file diff --git a/rbtree/CMakeLists.txt b/rbtree/CMakeLists.txt index 4d7be8b..dd2f8b5 100644 --- a/rbtree/CMakeLists.txt +++ b/rbtree/CMakeLists.txt @@ -1,7 +1,2 @@ -cmake_minimum_required(VERSION 3.7) -project(rbtree) - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - set(SOURCE_FILES test.cpp) add_executable(rbtree ${SOURCE_FILES}) diff --git a/router/CMakeLists.txt b/router/CMakeLists.txt index 606a238..ebb0e2f 100644 --- a/router/CMakeLists.txt +++ b/router/CMakeLists.txt @@ -1,10 +1,3 @@ -cmake_minimum_required(VERSION 3.15) -project(router) - -set(CMAKE_CXX_STANDARD 20) - -set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) - add_executable(trie trie.cc) add_executable(radix radix.cc) add_executable(3way 3way.cc) diff --git a/signal/CMakeLists.txt b/signal/CMakeLists.txt new file mode 100644 index 0000000..b05f816 --- /dev/null +++ b/signal/CMakeLists.txt @@ -0,0 +1,3 @@ +add_executable(signal_call signal_call_test.cpp) +add_executable(signal1 signal1.cpp) +add_executable(signal2 signal2.cpp) \ No newline at end of file diff --git a/string_ext/CMakeLists.txt b/string_ext/CMakeLists.txt new file mode 100644 index 0000000..388fe76 --- /dev/null +++ b/string_ext/CMakeLists.txt @@ -0,0 +1,6 @@ +add_executable(string_ext test.cpp) +add_custom_command( + TARGET string_ext POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/ip.txt + ${CMAKE_CURRENT_BINARY_DIR}/ip.txt) \ No newline at end of file diff --git a/threadpool/CMakeLists.txt b/threadpool/CMakeLists.txt new file mode 100644 index 0000000..0a34864 --- /dev/null +++ b/threadpool/CMakeLists.txt @@ -0,0 +1,3 @@ +find_package(Threads) +add_executable(threadpool test_threadpool.cpp) +target_link_libraries(threadpool Threads::Threads) \ No newline at end of file diff --git a/variant/CMakeLists.txt b/variant/CMakeLists.txt index 3456564..b46df1c 100644 --- a/variant/CMakeLists.txt +++ b/variant/CMakeLists.txt @@ -1,7 +1,3 @@ -cmake_minimum_required(VERSION 3.7) -project(variant) - set(CMAKE_CXX_STANDARD 11) - set(SOURCE_FILES variant.h test.cpp) -add_executable(variant ${SOURCE_FILES}) +add_executable(variant ${SOURCE_FILES}) \ No newline at end of file