Mercurial > malikania
diff 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 |
line wrap: on
line diff
--- a/CMakeLists.txt Tue Oct 30 13:21:55 2018 +0100 +++ b/CMakeLists.txt Wed Nov 28 22:01:55 2018 +0100 @@ -19,10 +19,19 @@ cmake_minimum_required(VERSION 3.0) project(malikania) +set_property(GLOBAL PROPERTY USE_FOLDERS On) + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED On) set(CMAKE_POSITION_INDEPENDENT_CODE On) +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On) set(CMAKE_MODULE_PATH ${malikania_SOURCE_DIR}/cmake/packages) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +foreach (cfg ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER CFG ${cfg}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG} ${CMAKE_BINARY_DIR}/bin/${cfg}) +endforeach () include(cmake/function/MalikaniaBuildAssets.cmake) include(cmake/function/MalikaniaDefineLibrary.cmake) @@ -49,15 +58,21 @@ add_subdirectory(extern) add_subdirectory(doc) add_subdirectory(libmlk) -add_subdirectory(libmlk-client) -add_subdirectory(libmlk-client-js) -add_subdirectory(libmlk-db) add_subdirectory(libmlk-js) -add_subdirectory(libmlk-server) -add_subdirectory(mlk-client) -add_subdirectory(mlk-server) + +if (MALIKANIA_HAS_SERVER) + add_subdirectory(libmlk-db) + add_subdirectory(libmlk-server) + add_subdirectory(mlk-server) +endif () -if (WITH_TESTS) +if (MALIKANIA_HAS_CLIENT) + add_subdirectory(libmlk-client) + add_subdirectory(libmlk-client-js) + add_subdirectory(mlk-client) +endif () + +if (MALIKANIA_WITH_TESTS) # Unit test libs. add_subdirectory(libmlk-db-test) add_subdirectory(libmlk-js-test) @@ -67,14 +82,20 @@ add_subdirectory(tests) endif () -# TODO: replace with FeatureSummary +message("") message("Building information:") message(" General flags: ${CMAKE_CXX_FLAGS}") message(" Debug flags: ${CMAKE_CXX_FLAGS_DEBUG}") message(" Release flags: ${CMAKE_CXX_FLAGS_RELEASE}") message("") +message("Component selection:") +message(" Server: ${MALIKANIA_HAS_SERVER_MSG}") +message(" Client: ${MALIKANIA_HAS_CLIENT_MSG}") +message("") message("Documentation:") message(" HTML: ${MALIKANIA_HAS_HTML_MSG}") message("") message("Additional options:") -message(" Tests: ${WITH_TESTS_MSG}") +message(" Tests: ${MALIKANIA_HAS_TESTS_MSG}") +message(" Examples: ${MALIKANIA_HAS_EXAMPLES_MSG}") +message("")