aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2020-10-17 10:49:37 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2020-10-17 10:49:37 +0300
commit9ada1c0fd699d9b9c746688c5c39cd72a0c7593d (patch)
tree31c95244174fb686f09e0979d0d2e42ede357c8e
parentAppVeyor: only Debug on Win32 (diff)
downloadmath-server-9ada1c0fd699d9b9c746688c5c39cd72a0c7593d.tar.gz
math-server-9ada1c0fd699d9b9c746688c5c39cd72a0c7593d.zip
cmake: minor tweks for the greater good
-rw-r--r--client/CMakeLists.txt14
-rw-r--r--server/common/CMakeLists.txt5
-rw-r--r--server/lexer/CMakeLists.txt8
-rw-r--r--server/main/CMakeLists.txt20
-rw-r--r--server/parser/CMakeLists.txt2
-rw-r--r--test/benchmarks/CMakeLists.txt3
-rw-r--r--test/unit_tests/CMakeLists.txt9
7 files changed, 40 insertions, 21 deletions
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index 505f025..dba0eea 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -1,12 +1,18 @@
-find_package(Boost 1.66.0 REQUIRED COMPONENTS filesystem program_options)
+file(GLOB client_cpp "*.cpp")
+file(GLOB client_hpp "*.hpp")
+add_executable(client ${client_cpp} ${client_hpp})
+set_target_properties(client PROPERTIES OUTPUT_NAME math-client)
set(CMAKE_THREAD_PREFER_PTHREAD ON)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
+target_link_libraries(client PRIVATE Threads::Threads)
-add_executable(client main.cpp)
-target_link_libraries(client PRIVATE Boost::disable_autolinking Boost::filesystem Boost::program_options Threads::Threads)
-set_target_properties(client PROPERTIES OUTPUT_NAME math-client)
+find_package(Boost 1.66.0 REQUIRED COMPONENTS filesystem program_options)
+target_link_libraries(client PRIVATE
+ Boost::disable_autolinking
+ Boost::filesystem
+ Boost::program_options)
install(TARGETS client RUNTIME DESTINATION bin)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
diff --git a/server/common/CMakeLists.txt b/server/common/CMakeLists.txt
index 5fe9e7f..284003f 100644
--- a/server/common/CMakeLists.txt
+++ b/server/common/CMakeLists.txt
@@ -1,4 +1,5 @@
-find_package(Boost REQUIRED)
-
add_library(common INTERFACE)
+target_include_directories(common INTERFACE .)
+
+find_package(Boost REQUIRED)
target_link_libraries(common INTERFACE Boost::boost)
diff --git a/server/lexer/CMakeLists.txt b/server/lexer/CMakeLists.txt
index 9c696d3..64375e8 100644
--- a/server/lexer/CMakeLists.txt
+++ b/server/lexer/CMakeLists.txt
@@ -1,5 +1,7 @@
-find_package(Boost REQUIRED COMPONENTS regex)
-
-add_library(lexer details/parse.cpp lexer.cpp token.cpp token_type.cpp)
+file(GLOB_RECURSE lexer_cpp "*.cpp")
+file(GLOB_RECURSE lexer_hpp "*.hpp")
+add_library(lexer ${lexer_cpp} ${lexer_hpp})
target_link_libraries(lexer PUBLIC common)
+
+find_package(Boost REQUIRED COMPONENTS regex)
target_link_libraries(lexer PRIVATE Boost::disable_autolinking Boost::regex)
diff --git a/server/main/CMakeLists.txt b/server/main/CMakeLists.txt
index 94abed7..39fe0b4 100644
--- a/server/main/CMakeLists.txt
+++ b/server/main/CMakeLists.txt
@@ -1,15 +1,21 @@
-find_package(Boost 1.66.0 REQUIRED COMPONENTS filesystem program_options)
+option(DEBUG_ASIO "enable debug output for Boost.Asio" OFF)
+
+file(GLOB server_cpp "*.cpp")
+file(GLOB server_hpp "*.hpp")
+add_executable(server ${server_cpp} ${server_hpp})
+target_link_libraries(server PRIVATE common parser)
+set_target_properties(server PROPERTIES OUTPUT_NAME math-server)
set(CMAKE_THREAD_PREFER_PTHREAD ON)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
+target_link_libraries(server PRIVATE Threads::Threads)
-option(DEBUG_ASIO "enable debug output for Boost.Asio" OFF)
-
-add_executable(server main.cpp server.cpp session.cpp session_manager.cpp)
-target_link_libraries(server PRIVATE common parser)
-target_link_libraries(server PRIVATE Boost::disable_autolinking Boost::filesystem Boost::program_options Threads::Threads)
-set_target_properties(server PROPERTIES OUTPUT_NAME math-server)
+find_package(Boost 1.66.0 REQUIRED COMPONENTS filesystem program_options)
+target_link_libraries(server PRIVATE
+ Boost::disable_autolinking
+ Boost::filesystem
+ Boost::program_options)
if(DEBUG_ASIO)
target_compile_definitions(server PRIVATE BOOST_ASIO_ENABLE_HANDLER_TRACKING)
diff --git a/server/parser/CMakeLists.txt b/server/parser/CMakeLists.txt
index 2490e57..20d39a1 100644
--- a/server/parser/CMakeLists.txt
+++ b/server/parser/CMakeLists.txt
@@ -1,2 +1,4 @@
add_library(parser INTERFACE)
+target_include_directories(parser INTERFACE .)
+
target_link_libraries(parser INTERFACE common lexer)
diff --git a/test/benchmarks/CMakeLists.txt b/test/benchmarks/CMakeLists.txt
index 89d9858..09566cc 100644
--- a/test/benchmarks/CMakeLists.txt
+++ b/test/benchmarks/CMakeLists.txt
@@ -1,4 +1,5 @@
-add_executable(benchmarks lexer.cpp)
+file(GLOB benchmarks_cpp "*.cpp")
+add_executable(benchmarks ${benchmarks_cpp})
set_target_properties(benchmarks PROPERTIES OUTPUT_NAME math-server-benchmarks)
target_link_libraries(benchmarks PRIVATE lexer)
diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt
index 314fb58..5a46f01 100644
--- a/test/unit_tests/CMakeLists.txt
+++ b/test/unit_tests/CMakeLists.txt
@@ -1,11 +1,12 @@
-find_package(Boost REQUIRED COMPONENTS unit_test_framework)
-
-add_executable(unit_tests main.cpp lexer.cpp parser.cpp)
+file(GLOB unit_tests_cpp "*.cpp")
+add_executable(unit_tests ${unit_tests_cpp})
target_link_libraries(unit_tests PRIVATE lexer parser)
-target_link_libraries(unit_tests PRIVATE Boost::disable_autolinking Boost::unit_test_framework)
target_include_directories(unit_tests PRIVATE ../..)
set_target_properties(unit_tests PROPERTIES OUTPUT_NAME math-server-unit-tests)
+find_package(Boost REQUIRED COMPONENTS unit_test_framework)
+target_link_libraries(unit_tests PRIVATE Boost::disable_autolinking Boost::unit_test_framework)
+
install(TARGETS unit_tests RUNTIME DESTINATION bin)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
install(FILES "$<TARGET_PDB_FILE:unit_tests>" DESTINATION bin OPTIONAL)