diff options
| author | callum <none@none> | 2011-05-13 17:09:40 -0700 | 
|---|---|---|
| committer | callum <none@none> | 2011-05-13 17:09:40 -0700 | 
| commit | 889f6cc3b3603bc65ba3cfe19f919e87b3f12366 (patch) | |
| tree | 7cd1dbda844d3a837df476738dabc255c8951a0a /indra/cmake | |
| parent | e4a9704d4157151442accca1116ad70f7f63ae95 (diff) | |
| parent | 1e6d1879a01d57e8949add79fa4f3ef5d11c1c43 (diff) | |
Merge with tip
Diffstat (limited to 'indra/cmake')
| -rw-r--r-- | indra/cmake/00-Common.cmake | 7 | ||||
| -rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/Prebuilt.cmake | 56 | ||||
| -rw-r--r-- | indra/cmake/Variables.cmake | 2 | 
4 files changed, 44 insertions, 23 deletions
| diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 15b827b217..faffdc8ccd 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -36,6 +36,13 @@ if (WINDOWS)    # Don't build DLLs.    set(BUILD_SHARED_LIBS OFF) +  # for "backwards compatibility", cmake sneaks in the Zm1000 option which royally +  # screws incredibuild. this hack disables it. +  # for details see: http://connect.microsoft.com/VisualStudio/feedback/details/368107/clxx-fatal-error-c1027-inconsistent-values-for-ym-between-creation-and-use-of-precompiled-headers +  # http://www.ogre3d.org/forums/viewtopic.php?f=2&t=60015 +  # http://www.cmake.org/pipermail/cmake/2009-September/032143.html +  string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP -D_SCL_SECURE_NO_WARNINGS=1"        CACHE STRING "C++ compiler debug options" FORCE)    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO  diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 3f259f6382..08feab6e36 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -95,7 +95,7 @@ INCLUDE(GoogleMock)      IF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND)        SET(${name}_test_additional_INCLUDE_DIRS "")      ENDIF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND) -    INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${name}_test_additional_INCLUDE_DIRS ) +    INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${${name}_test_additional_INCLUDE_DIRS} )      IF(LL_TEST_VERBOSE)        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_INCLUDE_DIRS ${${name}_test_additional_INCLUDE_DIRS}")      ENDIF(LL_TEST_VERBOSE) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index 1b60d176f1..dbb4dfc46c 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -1,35 +1,49 @@  # -*- cmake -*-  include(FindAutobuild) +if(INSTALL_PROPRIETARY) +  include(FindSCP) +endif(INSTALL_PROPRIETARY) +# The use_prebuilt_binary macro handles automated installation of package +# dependencies using autobuild.  The goal is that 'autobuild install' should +# only be run when we know we need to install a new package.  This should be +# the case in a clean checkout, or if autobuild.xml has been updated since the +# last run (encapsulated by the file ${CMAKE_BINARY_DIR}/temp/sentinel_installed), +# or if a previous attempt to install the package has failed (the exit status +# of previous attempts is serialized in the file +# ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)  macro (use_prebuilt_binary _binary)    if (NOT DEFINED STANDALONE_${_binary})      set(STANDALONE_${_binary} ${STANDALONE})    endif (NOT DEFINED STANDALONE_${_binary})    if (NOT STANDALONE_${_binary}) -    if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) -      if(INSTALL_PROPRIETARY) -        include(FindSCP) -      endif(INSTALL_PROPRIETARY) -	  if(DEBUG_PREBUILT) -		message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install -		--install-dir=${AUTOBUILD_INSTALL_DIR} -		--skip-license-check -		${_binary} ") -	  endif(DEBUG_PREBUILT) -	  execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}" -		install -		--install-dir=${AUTOBUILD_INSTALL_DIR} -		--skip-license-check -		${_binary} -		WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" -		RESULT_VARIABLE ${_binary}_installed -		) +    if("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed") +      file(READ ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${_binary}_installed") +      if(DEBUG_PREBUILT) +        message(STATUS "${_binary}_installed: \"${${_binary}_installed}\"") +      endif(DEBUG_PREBUILT) +    endif("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed") + +    if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0) +      if(DEBUG_PREBUILT) +        message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install +        --install-dir=${AUTOBUILD_INSTALL_DIR} +        --skip-license-check +        ${_binary} ") +      endif(DEBUG_PREBUILT) +      execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}" +        install +        --install-dir=${AUTOBUILD_INSTALL_DIR} +        --skip-license-check +        ${_binary} +        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" +        RESULT_VARIABLE ${_binary}_installed +        )        file(WRITE ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${${_binary}_installed}") -    else(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) -      set(${_binary}_installed 0) -    endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) +    endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0) +      if(NOT ${_binary}_installed EQUAL 0)        message(FATAL_ERROR                "Failed to download or unpack prebuilt '${_binary}'." diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 03428691cf..2f23e7c307 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -151,7 +151,7 @@ For more information, please see JIRA DEV-14943 - Cmake Linux cannot build both  endif (LINUX AND SERVER AND VIEWER) -set(USE_PRECOMPILED_HEADERS OFF CACHE BOOL "Enable use of precompiled header directives where supported.") +set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.")  source_group("CMake Rules" FILES CMakeLists.txt) | 
