More changes to the build system.

- Relax version checking because we intend to have only a single branch
- Exclude ldfpu.asm from build with MSVC-32 (reported by huynh van sen)
- Fix FindLLVM.cmake to work on Windows again
This commit is contained in:
kai
2012-07-28 22:41:34 +02:00
parent 41bf3ea5c8
commit 2addbd2b71
2 changed files with 24 additions and 14 deletions

View File

@@ -9,7 +9,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules")
# We need to find exactly the right LLVM version, our code usually does not
# work across LLVM »minor« releases.
find_package(LLVM 3.0 EXACT REQUIRED
find_package(LLVM 3.0 REQUIRED
all-targets bitwriter linker ipo instrumentation backend ${EXTRA_LLVM_MODULES})
math(EXPR LDC_LLVM_VER ${LLVM_VERSION_MAJOR}*100+${LLVM_VERSION_MINOR})
@@ -152,16 +152,20 @@ if(MSVC)
list(APPEND FE_SRC
${PROJECT_SOURCE_DIR}/vcbuild/strtold.c
# See below why this don't work
# if(CMAKE_CL_64)
# ${PROJECT_SOURCE_DIR}/vcbuild/ldfpu.asm
# endif(CMAKE_CL_64)
)
# MASM support does not work yet!
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj
COMMAND ${CMAKE_ASM_MASM_COMPILER} /c /Fo${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj ${PROJECT_SOURCE_DIR}/vcbuild/ldfpu.asm
DEPENDS ${PROJECT_SOURCE_DIR}/vcbuild/ldfpu.asm
COMMENT "generate ldfpu.obj")
list(APPEND FE_SRC
${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj
if(CMAKE_CL_64)
# MASM support does not work yet!
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj
COMMAND ${CMAKE_ASM_MASM_COMPILER} /c /Fo${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj ${PROJECT_SOURCE_DIR}/vcbuild/ldfpu.asm
DEPENDS ${PROJECT_SOURCE_DIR}/vcbuild/ldfpu.asm
COMMENT "generate ldfpu.obj")
list(APPEND FE_SRC
${CMAKE_CURRENT_BINARY_DIR}/ldfpu.obj
)
endif()
endif(MSVC)
# disable dmd gc
list(REMOVE_ITEM FE_SRC ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/root/dmgcmem.c)

View File

@@ -39,6 +39,9 @@ if (NOT LLVM_CONFIG)
set(LLVM_VERSION_STRING ${LLVM_PACKAGE_VERSION})
set(LLVM_CXXFLAGS ${LLVM_DEFINITIONS})
set(LLVM_LDFLAGS "")
list(REMOVE_ITEM LLVM_FIND_COMPONENTS "all-targets" index)
list(APPEND LLVM_FIND_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
list(REMOVE_ITEM LLVM_FIND_COMPONENTS "backend" index)
llvm_map_components_to_libraries(tmplibs ${LLVM_FIND_COMPONENTS})
foreach(lib ${tmplibs})
list(APPEND LLVM_LIBRARIES "${LLVM_LIBRARY_DIRS}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}")
@@ -50,25 +53,25 @@ if (NOT LLVM_CONFIG)
endif()
else()
macro(llvm_set var flag)
if(LLVM_FIND_QUIETLY)
if(LLVM_FIND_QUIETLY)
set(_quiet_arg ERROR_QUIET)
endif()
execute_process(
COMMAND ${LLVM_CONFIG} --${flag}
OUTPUT_VARIABLE LLVM_${var}
OUTPUT_STRIP_TRAILING_WHITESPACE
${_quiet_arg}
${_quiet_arg}
)
endmacro()
macro(llvm_set_libs var flag prefix)
if(LLVM_FIND_QUIETLY)
if(LLVM_FIND_QUIETLY)
set(_quiet_arg ERROR_QUIET)
endif()
execute_process(
COMMAND ${LLVM_CONFIG} --${flag} ${LLVM_FIND_COMPONENTS}
OUTPUT_VARIABLE tmplibs
OUTPUT_STRIP_TRAILING_WHITESPACE
${_quiet_arg}
${_quiet_arg}
)
string(REGEX MATCHALL "${prefix}[^ ]+" LLVM_${var} ${tmplibs})
endmacro()
@@ -76,9 +79,12 @@ else()
llvm_set(VERSION_STRING version)
if(${LLVM_VERSION_STRING} MATCHES "3.0[A-Za-z]*")
# Version 3.0 does not support component all-targets
llvm_set(TARGETS_BUILT targets-built)
llvm_set(TARGETS_TO_BUILD targets-built)
list(REMOVE_ITEM LLVM_FIND_COMPONENTS "all-targets" index)
list(APPEND LLVM_FIND_COMPONENTS ${LLVM_TARGETS_BUILT})
list(APPEND LLVM_FIND_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
else()
# Version 3.1+ does not supoort component backend
list(REMOVE_ITEM LLVM_FIND_COMPONENTS "backend" index)
endif()
llvm_set(CXXFLAGS cxxflags)
llvm_set(HOST_TARGET host-target)