Mercurial > projects > qtd
diff 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 |
line wrap: on
line diff
--- a/CMakeLists.txt Mon Jul 20 06:04:17 2009 +0000 +++ b/CMakeLists.txt Mon Jul 20 08:27:35 2009 +0000 @@ -6,6 +6,19 @@ ########################################################## if(NOT SECOND_RUN) +option(FORCE_IN_SOURCE_BUILD "Force the in-source building" "OFF") +if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT FORCE_IN_SOURCE_BUILD) + message(FATAL_ERROR "In-source builds are not allowed. +Please create a directory and run cmake from there, passing the path +to this source directory as the last argument. +This process created the file `CMakeCache.txt` and the directory `CMakeFiles'. +Please delete them. +Or you can restart cmake with `-DFORCE_IN_SOURCE_BUILD=1`, but it is not +recomended. +") +endif() + + FIND_PACKAGE(Qt4 REQUIRED) set (QT_USE_QTMAIN false) set (QT_USE_QTGUI false) @@ -98,7 +111,12 @@ message(FATAL_ERROR "${CMAKE_GENERATOR} isn't supported") endif(${CMAKE_GENERATOR} STREQUAL "NMake Makefiles") -set(cd_path ${CMAKE_BINARY_DIR}/build) +if(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) + set(cd_path ${CMAKE_SOURCE_DIR}) +else(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) + set(cd_path ${CMAKE_BINARY_DIR}/build) +endif(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) + make_native_path(cd_path) add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${CMAKE_BINARY_DIR}/build @@ -109,7 +127,7 @@ ## Make commands. set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_BINARY_DIR}/build) add_custom_target(install - COMMAND cd ${CMAKE_BINARY_DIR}/build && ${make_util} install + COMMAND cd ${CMAKE_BINARY_DIR}/CMakeFiles/build && ${make_util} install COMMENT "" ) add_dependencies(install preinstall) @@ -144,7 +162,7 @@ else(NOT SECOND_RUN) PROJECT(qtd CXX C) -load_cache(${CMAKE_BINARY_DIR}/.. INCLUDE_INTERNALS all_packages QTD_VERSION_STR QTD_VERSION) +load_cache(${CMAKE_BINARY_DIR} INCLUDE_INTERNALS all_packages QTD_VERSION_STR QTD_VERSION) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) FIND_PACKAGE(D REQUIRED) FIND_PACKAGE(Qt4 REQUIRED) @@ -550,5 +568,6 @@ endif(BUILD_EXAMPLES) #execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/CMakeCache.txt) +set(SECOND_RUN 0 CACHE INTERNAL "") endif(NOT SECOND_RUN) \ No newline at end of file