Mercurial > malikania
comparison CMakeLists.txt @ 200:0a285d62ace7
windows: initial VS2017 support
While here, do some cleanup in CMake files for a better hierarchy.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 28 Nov 2018 22:01:55 +0100 |
parents | 9ef01392a7f1 |
children | 19f32bd3e568 |
comparison
equal
deleted
inserted
replaced
199:9ef01392a7f1 | 200:0a285d62ace7 |
---|---|
17 # | 17 # |
18 | 18 |
19 cmake_minimum_required(VERSION 3.0) | 19 cmake_minimum_required(VERSION 3.0) |
20 project(malikania) | 20 project(malikania) |
21 | 21 |
22 set_property(GLOBAL PROPERTY USE_FOLDERS On) | |
23 | |
22 set(CMAKE_CXX_STANDARD 17) | 24 set(CMAKE_CXX_STANDARD 17) |
23 set(CMAKE_CXX_STANDARD_REQUIRED On) | 25 set(CMAKE_CXX_STANDARD_REQUIRED On) |
24 set(CMAKE_POSITION_INDEPENDENT_CODE On) | 26 set(CMAKE_POSITION_INDEPENDENT_CODE On) |
27 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On) | |
25 set(CMAKE_MODULE_PATH ${malikania_SOURCE_DIR}/cmake/packages) | 28 set(CMAKE_MODULE_PATH ${malikania_SOURCE_DIR}/cmake/packages) |
29 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | |
30 | |
31 foreach (cfg ${CMAKE_CONFIGURATION_TYPES}) | |
32 string(TOUPPER CFG ${cfg}) | |
33 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG} ${CMAKE_BINARY_DIR}/bin/${cfg}) | |
34 endforeach () | |
26 | 35 |
27 include(cmake/function/MalikaniaBuildAssets.cmake) | 36 include(cmake/function/MalikaniaBuildAssets.cmake) |
28 include(cmake/function/MalikaniaDefineLibrary.cmake) | 37 include(cmake/function/MalikaniaDefineLibrary.cmake) |
29 include(cmake/function/MalikaniaDefineExample.cmake) | 38 include(cmake/function/MalikaniaDefineExample.cmake) |
30 include(cmake/function/MalikaniaDefineExecutable.cmake) | 39 include(cmake/function/MalikaniaDefineExecutable.cmake) |
47 add_subdirectory(tools) | 56 add_subdirectory(tools) |
48 add_subdirectory(examples) | 57 add_subdirectory(examples) |
49 add_subdirectory(extern) | 58 add_subdirectory(extern) |
50 add_subdirectory(doc) | 59 add_subdirectory(doc) |
51 add_subdirectory(libmlk) | 60 add_subdirectory(libmlk) |
52 add_subdirectory(libmlk-client) | |
53 add_subdirectory(libmlk-client-js) | |
54 add_subdirectory(libmlk-db) | |
55 add_subdirectory(libmlk-js) | 61 add_subdirectory(libmlk-js) |
56 add_subdirectory(libmlk-server) | |
57 add_subdirectory(mlk-client) | |
58 add_subdirectory(mlk-server) | |
59 | 62 |
60 if (WITH_TESTS) | 63 if (MALIKANIA_HAS_SERVER) |
64 add_subdirectory(libmlk-db) | |
65 add_subdirectory(libmlk-server) | |
66 add_subdirectory(mlk-server) | |
67 endif () | |
68 | |
69 if (MALIKANIA_HAS_CLIENT) | |
70 add_subdirectory(libmlk-client) | |
71 add_subdirectory(libmlk-client-js) | |
72 add_subdirectory(mlk-client) | |
73 endif () | |
74 | |
75 if (MALIKANIA_WITH_TESTS) | |
61 # Unit test libs. | 76 # Unit test libs. |
62 add_subdirectory(libmlk-db-test) | 77 add_subdirectory(libmlk-db-test) |
63 add_subdirectory(libmlk-js-test) | 78 add_subdirectory(libmlk-js-test) |
64 add_subdirectory(libmlk-client-js-test) | 79 add_subdirectory(libmlk-client-js-test) |
65 | 80 |
66 enable_testing() | 81 enable_testing() |
67 add_subdirectory(tests) | 82 add_subdirectory(tests) |
68 endif () | 83 endif () |
69 | 84 |
70 # TODO: replace with FeatureSummary | 85 message("") |
71 message("Building information:") | 86 message("Building information:") |
72 message(" General flags: ${CMAKE_CXX_FLAGS}") | 87 message(" General flags: ${CMAKE_CXX_FLAGS}") |
73 message(" Debug flags: ${CMAKE_CXX_FLAGS_DEBUG}") | 88 message(" Debug flags: ${CMAKE_CXX_FLAGS_DEBUG}") |
74 message(" Release flags: ${CMAKE_CXX_FLAGS_RELEASE}") | 89 message(" Release flags: ${CMAKE_CXX_FLAGS_RELEASE}") |
75 message("") | 90 message("") |
91 message("Component selection:") | |
92 message(" Server: ${MALIKANIA_HAS_SERVER_MSG}") | |
93 message(" Client: ${MALIKANIA_HAS_CLIENT_MSG}") | |
94 message("") | |
76 message("Documentation:") | 95 message("Documentation:") |
77 message(" HTML: ${MALIKANIA_HAS_HTML_MSG}") | 96 message(" HTML: ${MALIKANIA_HAS_HTML_MSG}") |
78 message("") | 97 message("") |
79 message("Additional options:") | 98 message("Additional options:") |
80 message(" Tests: ${WITH_TESTS_MSG}") | 99 message(" Tests: ${MALIKANIA_HAS_TESTS_MSG}") |
100 message(" Examples: ${MALIKANIA_HAS_EXAMPLES_MSG}") | |
101 message("") |