aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2019-12-21 15:56:25 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2019-12-21 17:13:43 +0300
commit1a4540d78b931a11d5aece6b946ede86cf9876dc (patch)
treebab07d1c6b68d7aeb19e9e37ce8597f397961413
parentcmake: install() PDB files (diff)
downloadmath-server-1a4540d78b931a11d5aece6b946ede86cf9876dc.tar.gz
math-server-1a4540d78b931a11d5aece6b946ede86cf9876dc.zip
cmake: use Boost::* targets
-rw-r--r--CMakeLists.txt2
-rw-r--r--client/CMakeLists.txt9
-rw-r--r--server/common/CMakeLists.txt4
-rw-r--r--server/main/CMakeLists.txt17
-rw-r--r--test/unit_tests/CMakeLists.txt5
5 files changed, 11 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f22c1b..19b6164 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.8)
+cmake_minimum_required(VERSION 3.8) # for C++17
project(math_server CXX)
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index 8455f3b..0a7937b 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -1,16 +1,11 @@
find_package(Boost REQUIRED COMPONENTS filesystem program_options)
-add_executable(client main.cpp)
-
-target_include_directories(client SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
-target_link_libraries(client PRIVATE ${Boost_LIBRARIES})
-target_compile_definitions(client PRIVATE BOOST_DATE_TIME_NO_LIB BOOST_REGEX_NO_LIB)
-
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)
install(TARGETS client RUNTIME DESTINATION bin)
diff --git a/server/common/CMakeLists.txt b/server/common/CMakeLists.txt
index 5655861..5fe9e7f 100644
--- a/server/common/CMakeLists.txt
+++ b/server/common/CMakeLists.txt
@@ -1,6 +1,4 @@
find_package(Boost REQUIRED)
add_library(common INTERFACE)
-
-target_include_directories(common SYSTEM INTERFACE ${Boost_INCLUDE_DIRS})
-target_link_libraries(common INTERFACE ${Boost_LIBRARIES})
+target_link_libraries(common INTERFACE Boost::boost)
diff --git a/server/main/CMakeLists.txt b/server/main/CMakeLists.txt
index 7269005..fe33cb5 100644
--- a/server/main/CMakeLists.txt
+++ b/server/main/CMakeLists.txt
@@ -1,25 +1,20 @@
find_package(Boost REQUIRED COMPONENTS filesystem program_options)
+set(CMAKE_THREAD_PREFER_PTHREAD ON)
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+
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_include_directories(server SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
-target_link_libraries(server PRIVATE ${Boost_LIBRARIES})
-target_compile_definitions(server PRIVATE BOOST_DATE_TIME_NO_LIB BOOST_REGEX_NO_LIB)
-
-set(CMAKE_THREAD_PREFER_PTHREAD ON)
-set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(Threads REQUIRED)
-target_link_libraries(server PRIVATE Threads::Threads)
+target_link_libraries(server PRIVATE Boost::disable_autolinking Boost::filesystem Boost::program_options Threads::Threads)
+set_target_properties(server PROPERTIES OUTPUT_NAME math-server)
if(DEBUG_ASIO)
target_compile_definitions(server PRIVATE BOOST_ASIO_ENABLE_HANDLER_TRACKING)
endif()
-set_target_properties(server PROPERTIES OUTPUT_NAME math-server)
-
install(TARGETS server RUNTIME DESTINATION bin)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
install(FILES "$<TARGET_PDB_FILE:server>" DESTINATION bin OPTIONAL)
diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt
index dbb78ed..39cd4ee 100644
--- a/test/unit_tests/CMakeLists.txt
+++ b/test/unit_tests/CMakeLists.txt
@@ -2,11 +2,8 @@ find_package(Boost REQUIRED COMPONENTS unit_test_framework)
add_executable(unit_tests main.cpp lexer.cpp parser.cpp)
target_link_libraries(unit_tests PRIVATE lexer parser)
+target_link_libraries(unit_tests PRIVATE Boost::unit_test_framework)
target_include_directories(unit_tests PRIVATE ../..)
-
-target_include_directories(unit_tests SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
-target_link_libraries(unit_tests PRIVATE ${Boost_LIBRARIES})
-
set_target_properties(unit_tests PROPERTIES OUTPUT_NAME math-server-unit-tests)
install(TARGETS unit_tests RUNTIME DESTINATION bin)