diff -rupN llvm-3.4.src/CMakeLists.txt llvm-3.4.src.cotire/CMakeLists.txt --- llvm-3.4.src/CMakeLists.txt 2013-11-25 19:34:26.000000000 +0100 +++ llvm-3.4.src.cotire/CMakeLists.txt 2014-01-06 20:25:12.000000000 +0100 @@ -1,7 +1,7 @@ # See docs/CMake.html for instructions about how to build LLVM with CMake. project(LLVM) -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 2.8.12) # Add path for custom modules set(CMAKE_MODULE_PATH @@ -25,6 +25,8 @@ if ( LLVM_USE_FOLDERS ) endif() include(VersionFromVCS) +include(cotire) +set_property(DIRECTORY PROPERTY COTIRE_UNITY_LINK_LIBRARIES_INIT "COPY_UNITY") option(LLVM_APPEND_VC_REV "Append the version control system revision id to LLVM version" OFF) diff -rupN llvm-3.4.src/cmake/modules/AddLLVM.cmake llvm-3.4.src.cotire/cmake/modules/AddLLVM.cmake --- llvm-3.4.src/cmake/modules/AddLLVM.cmake 2013-08-27 21:25:01.000000000 +0200 +++ llvm-3.4.src.cotire/cmake/modules/AddLLVM.cmake 2014-01-06 20:25:50.000000000 +0100 @@ -41,6 +41,10 @@ macro(add_llvm_library name) # property has been set to an empty value. get_property(lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${name}) target_link_libraries(${name} ${lib_deps}) +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endmacro(add_llvm_library name) macro(add_llvm_loadable_module name) @@ -78,6 +82,10 @@ ${name} ignored.") ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) endif() endif() +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endif() set_target_properties(${name} PROPERTIES FOLDER "Loadable modules") @@ -119,6 +127,10 @@ macro(add_llvm_tool name) endif() endif() set_target_properties(${name} PROPERTIES FOLDER "Tools") +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endmacro(add_llvm_tool name) @@ -132,12 +144,20 @@ macro(add_llvm_example name) install(TARGETS ${name} RUNTIME DESTINATION examples) endif() set_target_properties(${name} PROPERTIES FOLDER "Examples") +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endmacro(add_llvm_example name) macro(add_llvm_utility name) add_llvm_executable(${name} ${ARGN}) set_target_properties(${name} PROPERTIES FOLDER "Utils") +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endmacro(add_llvm_utility name) @@ -245,6 +265,10 @@ function(add_unittest test_suite test_na set(target_compile_flags "${target_compile_flags} -Wno-variadic-macros") endif () set_property(TARGET ${test_name} PROPERTY COMPILE_FLAGS "${target_compile_flags}") +if (COMMAND cotire) + set_target_properties(${name} PROPERTIES COTIRE_UNITY_SOURCE_POST_UNDEFS "DEBUG_TYPE") + cotire(${name}) +endif() endfunction() # This function provides an automatic way to 'configure'-like generate a file diff -rupN llvm-3.4.src/lib/Support/CMakeLists.txt llvm-3.4.src.cotire/lib/Support/CMakeLists.txt --- llvm-3.4.src/lib/Support/CMakeLists.txt 2013-09-04 18:00:12.000000000 +0200 +++ llvm-3.4.src.cotire/lib/Support/CMakeLists.txt 2014-01-06 20:27:36.000000000 +0100 @@ -1,3 +1,7 @@ +if (COMMAND cotire) + set_source_files_properties (IsInf.cpp IsNAN.cpp PROPERTIES COTIRE_EXCLUDED TRUE) +endif() + add_llvm_library(LLVMSupport APFloat.cpp APInt.cpp