comparison CMakeLists.txt @ 239:4716eaf4a67e

Hack for building in a source directory
author SokoL_SD
date Mon, 20 Jul 2009 08:27:35 +0000
parents 62d0dce52dac
children 8b1a982c9ac3
comparison
equal deleted inserted replaced
238:1349940724eb 239:4716eaf4a67e
3 3
4 ########################################################## 4 ##########################################################
5 ## Building generator && settings. 5 ## Building generator && settings.
6 ########################################################## 6 ##########################################################
7 if(NOT SECOND_RUN) 7 if(NOT SECOND_RUN)
8
9 option(FORCE_IN_SOURCE_BUILD "Force the in-source building" "OFF")
10 if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT FORCE_IN_SOURCE_BUILD)
11 message(FATAL_ERROR "In-source builds are not allowed.
12 Please create a directory and run cmake from there, passing the path
13 to this source directory as the last argument.
14 This process created the file `CMakeCache.txt` and the directory `CMakeFiles'.
15 Please delete them.
16 Or you can restart cmake with `-DFORCE_IN_SOURCE_BUILD=1`, but it is not
17 recomended.
18 ")
19 endif()
20
8 21
9 FIND_PACKAGE(Qt4 REQUIRED) 22 FIND_PACKAGE(Qt4 REQUIRED)
10 set (QT_USE_QTMAIN false) 23 set (QT_USE_QTMAIN false)
11 set (QT_USE_QTGUI false) 24 set (QT_USE_QTGUI false)
12 25
96 set(make_util $(MAKE)) 109 set(make_util $(MAKE))
97 else(${CMAKE_GENERATOR} STREQUAL "NMake Makefiles") 110 else(${CMAKE_GENERATOR} STREQUAL "NMake Makefiles")
98 message(FATAL_ERROR "${CMAKE_GENERATOR} isn't supported") 111 message(FATAL_ERROR "${CMAKE_GENERATOR} isn't supported")
99 endif(${CMAKE_GENERATOR} STREQUAL "NMake Makefiles") 112 endif(${CMAKE_GENERATOR} STREQUAL "NMake Makefiles")
100 113
101 set(cd_path ${CMAKE_BINARY_DIR}/build) 114 if(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR})
115 set(cd_path ${CMAKE_SOURCE_DIR})
116 else(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR})
117 set(cd_path ${CMAKE_BINARY_DIR}/build)
118 endif(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR})
119
102 make_native_path(cd_path) 120 make_native_path(cd_path)
103 add_custom_command(TARGET main POST_BUILD 121 add_custom_command(TARGET main POST_BUILD
104 COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${CMAKE_BINARY_DIR}/build 122 COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${CMAKE_BINARY_DIR}/build
105 COMMAND cd ARGS ${cd_path} && ${CMAKE_COMMAND} -G${CMAKE_GENERATOR} -DSECOND_RUN=1 ${CMAKE_SOURCE_DIR} && ${make_util} 123 COMMAND cd ARGS ${cd_path} && ${CMAKE_COMMAND} -G${CMAKE_GENERATOR} -DSECOND_RUN=1 ${CMAKE_SOURCE_DIR} && ${make_util}
106 COMMENT "" 124 COMMENT ""
107 ) 125 )
108 126
109 ## Make commands. 127 ## Make commands.
110 set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_BINARY_DIR}/build) 128 set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_BINARY_DIR}/build)
111 add_custom_target(install 129 add_custom_target(install
112 COMMAND cd ${CMAKE_BINARY_DIR}/build && ${make_util} install 130 COMMAND cd ${CMAKE_BINARY_DIR}/CMakeFiles/build && ${make_util} install
113 COMMENT "" 131 COMMENT ""
114 ) 132 )
115 add_dependencies(install preinstall) 133 add_dependencies(install preinstall)
116 134
117 ##-------------------------------------------- 135 ##--------------------------------------------
142 ## Building QtD. 160 ## Building QtD.
143 ########################################################## 161 ##########################################################
144 else(NOT SECOND_RUN) 162 else(NOT SECOND_RUN)
145 163
146 PROJECT(qtd CXX C) 164 PROJECT(qtd CXX C)
147 load_cache(${CMAKE_BINARY_DIR}/.. INCLUDE_INTERNALS all_packages QTD_VERSION_STR QTD_VERSION) 165 load_cache(${CMAKE_BINARY_DIR} INCLUDE_INTERNALS all_packages QTD_VERSION_STR QTD_VERSION)
148 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) 166 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
149 FIND_PACKAGE(D REQUIRED) 167 FIND_PACKAGE(D REQUIRED)
150 FIND_PACKAGE(Qt4 REQUIRED) 168 FIND_PACKAGE(Qt4 REQUIRED)
151 169
152 set(QTD_VERSION_STR ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}) 170 set(QTD_VERSION_STR ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH})
548 add_subdirectory(demos) 566 add_subdirectory(demos)
549 add_subdirectory(examples) 567 add_subdirectory(examples)
550 endif(BUILD_EXAMPLES) 568 endif(BUILD_EXAMPLES)
551 569
552 #execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/CMakeCache.txt) 570 #execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/CMakeCache.txt)
571 set(SECOND_RUN 0 CACHE INTERNAL "")
553 572
554 endif(NOT SECOND_RUN) 573 endif(NOT SECOND_RUN)