comparison CMakeLists.txt @ 818:49fa22f0b4b9

windows: support for VS2017
author David Demelier <markand@malikania.fr>
date Fri, 23 Nov 2018 21:50:20 +0100
parents 8460b4a34191
children d76699e13156
comparison
equal deleted inserted replaced
817:ebe561276c33 818:49fa22f0b4b9
50 # 50 #
51 51
52 cmake_minimum_required(VERSION 3.10) 52 cmake_minimum_required(VERSION 3.10)
53 project(irccd) 53 project(irccd)
54 54
55 include(GNUInstallDirs)
56
55 # Helper to set global internal variables. 57 # Helper to set global internal variables.
56 function(setg var value) 58 function(setg var value)
57 set("${var}" "${value}" CACHE INTERNAL "") 59 set("${var}" "${value}" CACHE INTERNAL "")
58 endfunction () 60 endfunction ()
59 61
62 set_property(GLOBAL PROPERTY USE_FOLDERS On)
63
64 set(CMAKE_CXX_STANDARD 17)
65 set(CMAKE_CXX_STANDARD_REQUIRED On)
60 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${irccd_SOURCE_DIR}/cmake/packages) 66 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${irccd_SOURCE_DIR}/cmake/packages)
61 set(CMAKE_POSITION_INDEPENDENT_CODE On) 67 set(CMAKE_POSITION_INDEPENDENT_CODE On)
62 set(CMAKE_CXX_STANDARD 17)
63 set(CMAKE_CXX_STANDARD_REQUIRED On)
64 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On) 68 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On)
65 69
66 set_property(GLOBAL PROPERTY USE_FOLDERS On) 70 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
67 71
68 include(CMakeParseArguments) 72 foreach (cfg ${CMAKE_CONFIGURATION_TYPES})
69 include(GNUInstallDirs) 73 string(TOUPPER CFG ${cfg})
74 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG} ${CMAKE_BINARY_DIR}/bin/${cfg})
75 endforeach ()
70 76
71 include(cmake/function/IrccdBuildHtml.cmake) 77 include(cmake/function/IrccdBuildHtml.cmake)
72 include(cmake/function/IrccdDefineExecutable.cmake) 78 include(cmake/function/IrccdDefineExecutable.cmake)
73 include(cmake/function/IrccdDefineLibrary.cmake) 79 include(cmake/function/IrccdDefineLibrary.cmake)
74 include(cmake/function/IrccdDefineMan.cmake) 80 include(cmake/function/IrccdDefineMan.cmake)
97 103
98 add_subdirectory(irccd) 104 add_subdirectory(irccd)
99 add_subdirectory(irccdctl) 105 add_subdirectory(irccdctl)
100 add_subdirectory(irccd-test) 106 add_subdirectory(irccd-test)
101 add_subdirectory(systemd) 107 add_subdirectory(systemd)
108 add_subdirectory(plugins)
102 109
103 if (IRCCD_HAVE_JS)
104 add_subdirectory(plugins)
105 endif ()
106
107 # Tests.
108 if (IRCCD_WITH_TESTS) 110 if (IRCCD_WITH_TESTS)
109 include(CTest) 111 include(CTest)
110 add_subdirectory(tests) 112 add_subdirectory(tests)
111 endif () 113 endif ()
112 114
155 endif () 157 endif ()
156 endif () 158 endif ()
157 159
158 include(cmake/IrccdPackage.cmake) 160 include(cmake/IrccdPackage.cmake)
159 include(CPack) 161 include(CPack)
160
161 # Metadata files
162 add_custom_target(
163 metadata
164 SOURCES
165 ${CMAKE_SOURCE_DIR}/CHANGES.md
166 ${CMAKE_SOURCE_DIR}/CONTRIBUTE.md
167 ${CMAKE_SOURCE_DIR}/CREDITS.md
168 ${CMAKE_SOURCE_DIR}/INSTALL.md
169 ${CMAKE_SOURCE_DIR}/MIGRATING.md
170 ${CMAKE_SOURCE_DIR}/README.md
171 ${CMAKE_SOURCE_DIR}/STYLE.md
172 )