annotate CMakeLists.txt @ 121:48f7e7277ab6

CMake: set CMake variables in libraries
author David Demelier <markand@malikania.fr>
date Fri, 22 Sep 2017 12:56:55 +0200
parents 119bcc5a727e
children 991f2af682a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
1 #
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
2 # CMakeLists.txt -- CMake build system for malikania
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
3 #
110
119bcc5a727e Misc: replace copyrights, closes #655
David Demelier <markand@malikania.fr>
parents: 107
diff changeset
4 # Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
5 #
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
8 # copyright notice and this permission notice appear in all copies.
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
9 #
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
17 #
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
18
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
19 cmake_minimum_required(VERSION 3.0)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
20 project(malikania)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
21
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
22 set(
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
23 CMAKE_MODULE_PATH
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
24 "${malikania_SOURCE_DIR}/cmake"
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
25 "${malikania_SOURCE_DIR}/cmake/internal"
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
26 "${malikania_SOURCE_DIR}/cmake/packages"
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
27 )
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
28
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
29 set(CMAKE_CXX_STANDARD 14)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
30 set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
31 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
32
49
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
33 include(cmake/function/MalikaniaBuildAssets.cmake)
106
f8c6d2244795 Server: rework model and dao
David Demelier <markand@malikania.fr>
parents: 103
diff changeset
34 include(cmake/function/MalikaniaDefineDatabase.cmake)
49
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
35 include(cmake/function/MalikaniaDefineLibrary.cmake)
80
a162f380f02e CMake: create examples, closes #615
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
36 include(cmake/function/MalikaniaDefineExample.cmake)
49
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
37 include(cmake/function/MalikaniaDefineExecutable.cmake)
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
38 include(cmake/function/MalikaniaDefineTest.cmake)
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
39 include(cmake/function/MalikaniaSetg.cmake)
54
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents: 49
diff changeset
40 include(cmake/function/MalikaniaVeraCheck.cmake)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
41 include(cmake/MalikaniaVersion.cmake)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
42 include(cmake/MalikaniaOptions.cmake)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
43 include(cmake/MalikaniaSystem.cmake)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
44
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
45 configure_file(
66
b2031b785cbc CMake: rename Config.h to sysconfig.hpp
David Demelier <markand@malikania.fr>
parents: 54
diff changeset
46 ${malikania_SOURCE_DIR}/cmake/internal/sysconfig.hpp.in
b2031b785cbc CMake: rename Config.h to sysconfig.hpp
David Demelier <markand@malikania.fr>
parents: 54
diff changeset
47 ${malikania_BINARY_DIR}/sysconfig.hpp
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
48 )
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
49
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
50 include_directories(${CMAKE_BINARY_DIR})
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
51
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 41
diff changeset
52 find_package(Boost REQUIRED COMPONENTS filesystem system timer unit_test_framework)
40
1e206fdc7021 Server: switch to Boost.DLL, closes #583
David Demelier <markand@malikania.fr>
parents: 37
diff changeset
53 find_package(OpenSSL REQUIRED)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
54 find_package(ZIP REQUIRED)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
55
47
7097a91b08a8 Tools: add mlk-bcc tool, closes #596
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
56 add_subdirectory(tools)
80
a162f380f02e CMake: create examples, closes #615
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
57 add_subdirectory(examples)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
58 add_subdirectory(extern)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
59 add_subdirectory(docs)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
60 add_subdirectory(libcommon)
37
702e0a2b9e5e Misc: make JavaScript different libraries, Closes T3
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
61 add_subdirectory(libcommon-js)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
62 add_subdirectory(libclient)
37
702e0a2b9e5e Misc: make JavaScript different libraries, Closes T3
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
63 add_subdirectory(libclient-js)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
64 add_subdirectory(libserver)
107
6f4965c26ceb Server: add basic accounts tests, #682
David Demelier <markand@malikania.fr>
parents: 106
diff changeset
65 add_subdirectory(libserver-test)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
66 add_subdirectory(client)
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
67 add_subdirectory(server)
69
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
68
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
69 if (WITH_TESTS)
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
70 enable_testing()
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
71 add_subdirectory(tests)
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
72 endif ()
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
73
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
74 message("Building information:")
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
75 message(" General flags: ${CMAKE_CXX_FLAGS}")
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
76 message(" Debug flags: ${CMAKE_CXX_FLAGS_DEBUG}")
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
77 message(" Release flags: ${CMAKE_CXX_FLAGS_RELEASE}")
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
78 message("")
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
79 message("Documentation:")
49
2804ae55c70f CMake: big cleanup, closes #598
David Demelier <markand@malikania.fr>
parents: 47
diff changeset
80 message(" Doxygen: ${WITH_DOXYGEN_MSG}")
69
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
81 message("Additional options:")
54
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents: 49
diff changeset
82 message(" Vera: ${WITH_VERA_MSG}")
69
fce7e41875db CMake: add WITH_TESTS option
David Demelier <markand@malikania.fr>
parents: 66
diff changeset
83 message(" Tests: ${WITH_TESTS_MSG}")