@@ -21,6 +21,7 @@ if (NOT CMAKE_CXX_STANDARD)
2121 set (CMAKE_CXX_STANDARD 11)
2222endif ()
2323
24+ set (EXTERNALS_DIR "${CMAKE_SOURCE_DIR} /externals" )
2425while (TRUE )
2526 if (CC_NO_UNIT_TESTS)
2627 message (STATUS "Unittests are disabled" )
@@ -39,20 +40,24 @@ while (TRUE)
3940 endif ()
4041
4142 set (cxx_tag "4.4" )
42- set (cxxtest_stamp "${CMAKE_BINARY_DIR} /cxxtest.stamp" )
43- if (( EXISTS ${cxxtest_stamp} ) AND ( EXISTS " ${CMAKE_BINARY_DIR} /cxxtest" ) )
43+ set (cxxtest_stamp "${EXTERNALS_DIR} /cxxtest /cxxtest.stamp" )
44+ if (EXISTS ${cxxtest_stamp} )
4445 execute_process (
4546 COMMAND ${GIT_EXECUTABLE} checkout ${cxx_tag}
4647 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} /cxxtest
4748 )
4849 else ()
4950 execute_process (
50- COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR} /cxxtest"
51+ COMMAND ${CMAKE_COMMAND} -E remove_directory "${EXTERNALS_DIR} /cxxtest"
52+ )
53+
54+ execute_process (
55+ COMMAND ${CMAKE_COMMAND} -E make_directory "${EXTERNALS_DIR} "
5156 )
5257
5358 execute_process (
5459 COMMAND ${GIT_EXECUTABLE} clone -b ${cxx_tag} --depth 1 https://github.com/CxxTest/cxxtest.git
55- WORKING_DIRECTORY ${CMAKE_BINARY_DIR }
60+ WORKING_DIRECTORY ${EXTERNALS_DIR }
5661 RESULT_VARIABLE git_result
5762 )
5863
@@ -66,7 +71,7 @@ while (TRUE)
6671 )
6772 endif ()
6873
69- set (CXXTEST_INCLUDE_DIR "${CMAKE_BINARY_DIR } /cxxtest" )
74+ set (CXXTEST_INCLUDE_DIR "${EXTERNALS_DIR } /cxxtest" )
7075 set (CXXTEST_PYTHON_TESTGEN_EXECUTABLE "${CXXTEST_INCLUDE_DIR} /bin/cxxtestgen" )
7176
7277 find_package (CxxTest )
@@ -147,23 +152,67 @@ if (NOT "${CC_QT_DIR}" STREQUAL "")
147152 link_directories ("${CC_QT_DIR} /plugins/platforms" )
148153endif ()
149154
150- set (INSTALL_DIR ${CMAKE_INSTALL_PREFIX} )
151-
152155include (GNUInstallDirs )
153156set (INSTALL_NAME "CommsChampion" )
154- set (LIB_INSTALL_DIR ${INSTALL_DIR} / ${ CMAKE_INSTALL_LIBDIR} )
155- set (BIN_INSTALL_DIR ${INSTALL_DIR} / ${ CMAKE_INSTALL_BINDIR} )
156- set (INC_INSTALL_DIR ${INSTALL_DIR} / ${ CMAKE_INSTALL_INCLUDEDIR} )
157+ set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} )
158+ set (BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} )
159+ set (INC_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
157160set (PLUGIN_INSTALL_REL_DIR ${CMAKE_INSTALL_LIBDIR} /${INSTALL_NAME} /plugin)
158- set (PLUGIN_INSTALL_DIR ${INSTALL_DIR} / ${ PLUGIN_INSTALL_REL_DIR} )
161+ set (PLUGIN_INSTALL_DIR ${PLUGIN_INSTALL_REL_DIR} )
159162set (DATA_INSTALL_REL_DIR ${CMAKE_INSTALL_DATAROOTDIR} /${INSTALL_NAME} )
160- set (DATA_INSTALL_DIR ${INSTALL_DIR} / ${ DATA_INSTALL_REL_DIR} )
161- set (DOC_INSTALL_DIR ${INSTALL_DIR} / ${ CMAKE_INSTALL_DATAROOTDIR} /doc)
163+ set (DATA_INSTALL_DIR ${DATA_INSTALL_REL_DIR} )
164+ set (DOC_INSTALL_DIR ${CMAKE_INSTALL_DATAROOTDIR} /doc)
162165set (ICON_INSTALL_DIR ${DATA_INSTALL_DIR} /icon)
163166set (CONFIG_INSTALL_REL_DIR ${CMAKE_INSTALL_DATADIR} /${INSTALL_NAME} )
164- set (CONFIG_INSTALL_DIR ${INSTALL_DIR} /${CONFIG_INSTALL_REL_DIR} )
167+ set (CONFIG_INSTALL_DIR ${CONFIG_INSTALL_REL_DIR} )
168+
169+ file (READ "${CMAKE_SOURCE_DIR} /comms/include/comms/version.h" version_file )
170+ string (REGEX MATCH "COMMS_MAJOR_VERSION ([0-9]*)U*" _ ${version_file} )
171+ set (major_ver ${CMAKE_MATCH_1} )
172+ string (REGEX MATCH "COMMS_MINOR_VERSION ([0-9]*)U*" _ ${version_file} )
173+ set (minor_ver ${CMAKE_MATCH_1} )
174+ string (REGEX MATCH "COMMS_PATCH_VERSION ([0-9]*)U*" _ ${version_file} )
175+ set (patch_ver ${CMAKE_MATCH_1} )
176+ set (COMMS_VERSION "${major_ver} .${minor_ver} .${patch_ver} " )
177+
178+
179+ include (CMakePackageConfigHelpers )
180+ write_basic_package_version_file (
181+ ${CMAKE_BINARY_DIR} /LibCommsConfigVersion.cmake
182+ VERSION ${COMMS_VERSION}
183+ COMPATIBILITY AnyNewerVersion )
184+
185+ write_basic_package_version_file (
186+ ${CMAKE_BINARY_DIR} /CommsChampionConfigVersion.cmake
187+ VERSION ${COMMS_VERSION}
188+ COMPATIBILITY AnyNewerVersion )
189+
190+ set (LIB_COMMS_CMAKE_FILES
191+ ${CMAKE_SOURCE_DIR} /cmake/LibCommsConfig.cmake
192+ ${CMAKE_SOURCE_DIR} /cmake/DocCleanupScript.cmake
193+ ${CMAKE_BINARY_DIR} /LibCommsConfigVersion.cmake
194+ )
195+
196+ set (COMMS_CHAMPION_CMAKE_FILES
197+ ${CMAKE_SOURCE_DIR} /cmake/CC_DefineExternalProjectTargets.cmake
198+ ${CMAKE_SOURCE_DIR} /cmake/CommsChampionConfig.cmake
199+ ${CMAKE_SOURCE_DIR} /cmake/DefineExternalProjectTargets.cmake
200+ ${CMAKE_SOURCE_DIR} /cmake/DeployQt5.cmake
201+ ${CMAKE_SOURCE_DIR} /cmake/DocCleanupScript.cmake
202+ ${CMAKE_SOURCE_DIR} /cmake/GenWinAppStartBat.cmake
203+ ${CMAKE_BINARY_DIR} /LibCommsConfigVersion.cmake
204+ )
205+
206+ install (
207+ FILES ${LIB_COMMS_CMAKE_FILES}
208+ DESTINATION ${LIB_INSTALL_DIR} /LibComms/cmake/
209+ )
210+
211+ install (
212+ FILES ${COMMS_CHAMPION_CMAKE_FILES}
213+ DESTINATION ${LIB_INSTALL_DIR} /CommsChampion/cmake/
214+ )
165215
166- install (DIRECTORY cmake DESTINATION ${LIB_INSTALL_DIR} /${INSTALL_NAME} )
167216
168217add_subdirectory (comms )
169218
0 commit comments