comparison CMakeLists.txt @ 1524:b265fb6ce15b

Merge.
author Robert Clipsham <robert@octarineparrot.com>
date Mon, 06 Jul 2009 23:56:11 +0100
parents 6766485fb584
children 259b031f3d22
comparison
equal deleted inserted replaced
1523:833337c65fd3 1524:b265fb6ce15b
51 execute_process( 51 execute_process(
52 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --ldflags 52 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --ldflags
53 OUTPUT_VARIABLE LLVM_LDFLAGS 53 OUTPUT_VARIABLE LLVM_LDFLAGS
54 OUTPUT_STRIP_TRAILING_WHITESPACE 54 OUTPUT_STRIP_TRAILING_WHITESPACE
55 ) 55 )
56 56 execute_process(
57 set(EXTRA_LLVM_MODULES "" CACHE STRING "extra llvm components to link in (see llvm-config --components)") 57 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --includedir
58 execute_process( 58 OUTPUT_VARIABLE LLVM_INCLUDEDIR
59 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --libfiles bitwriter linker ipo instrumentation backend ${EXTRA_LLVM_MODULES}
60 OUTPUT_VARIABLE LLVM_LIBS
61 OUTPUT_STRIP_TRAILING_WHITESPACE 59 OUTPUT_STRIP_TRAILING_WHITESPACE
62 ) 60 )
63 61
64 set(D_VERSION 1 CACHE STRING "D language version") 62 set(D_VERSION 1 CACHE STRING "D language version")
65 set(PROGRAM_PREFIX CACHE STRING "prepended to ldc binary name") 63 set(PROGRAM_PREFIX CACHE STRING "prepended to ldc binary name")
131 # idgen and impcnvgen done 129 # idgen and impcnvgen done
132 130
133 set(DEFAULT_TARGET ${HOST_TARGET} CACHE STRING "default target") 131 set(DEFAULT_TARGET ${HOST_TARGET} CACHE STRING "default target")
134 set(DEFAULT_ALT_TARGET ${HOST_ALT_TARGET} CACHE STRING "default alt target") 132 set(DEFAULT_ALT_TARGET ${HOST_ALT_TARGET} CACHE STRING "default alt target")
135 133
136 include_directories(. ${DMDFE_PATH} ${DMDFE_PATH}/root ${PROJECT_BINARY_DIR}/${DMDFE_PATH} ${PROJECT_BINARY_DIR} ${LLVM_INSTDIR}/include) 134 include_directories(. ${DMDFE_PATH} ${DMDFE_PATH}/root ${PROJECT_BINARY_DIR}/${DMDFE_PATH} ${PROJECT_BINARY_DIR} ${LLVM_INCLUDEDIR})
135
136 set(EXTRA_LLVM_MODULES "" CACHE STRING "extra llvm components to link in (see llvm-config --components)")
137 separate_arguments(EXTRA_LLVM_MODULES)
138 execute_process(
139 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --libfiles bitwriter linker ipo instrumentation backend ${EXTRA_LLVM_MODULES}
140 OUTPUT_VARIABLE LLVM_LIBS
141 OUTPUT_STRIP_TRAILING_WHITESPACE
142 )
143
144 # build a define that contains all LLVM targets required and is usable for
145 # preprocessor code generation. start with the native target.
146 find_path(LLVM_CONFIG_FILE_PATH config.h PATHS ${LLVM_INCLUDEDIR}/llvm/Config ${LLVM_INCLUDEDIR}/Config NO_DEFAULT_PATH)
147 if(LLVM_CONFIG_FILE_PATH STREQUAL "LLVM_CONFIG_FILE_PATH-NOTFOUND")
148 message("Couldn't find your llvm Config.h file in ${LLVM_INCLUDEDIR}, no native target will be initialized.")
149 else(LLVM_CONFIG_FILE_PATH STREQUAL "LLVM_CONFIG_FILE_PATH-NOTFOUND")
150 file(STRINGS ${LLVM_CONFIG_FILE_PATH}/config.h LLVM_NATIVE_ARCH REGEX "^#define LLVM_NATIVE_ARCH")
151 if(LLVM_NATIVE_ARCH)
152 string(REGEX REPLACE "^#define LLVM_NATIVE_ARCH (.*)Target$" "\\1" LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH})
153 message("Found native target ${LLVM_NATIVE_ARCH}")
154 set(LLVM_MODULES_DEFINE "LLVM_TARGET(${LLVM_NATIVE_ARCH})")
155 else(LLVM_NATIVE_ARCH)
156 message("Couldn't find the LLVM_NATIVE_ARCH define in ${LLVM_CONFIG_FILE_PATH}/config.h. Probably you have an older LLVM and can ignore this warning.")
157 endif(LLVM_NATIVE_ARCH)
158 endif(LLVM_CONFIG_FILE_PATH STREQUAL "LLVM_CONFIG_FILE_PATH-NOTFOUND")
159 # chain the extra target list to the define
160 foreach(EXTRA_TARGET ${EXTRA_LLVM_MODULES})
161 set(LLVM_MODULES_DEFINE "${LLVM_MODULES_DEFINE} LLVM_TARGET(${EXTRA_TARGET})")
162 endforeach(EXTRA_TARGET)
163 set_source_files_properties(
164 ${PROJECT_SOURCE_DIR}/gen/main.cpp PROPERTIES
165 COMPILE_DEFINITIONS LDC_TARGETS=${LLVM_MODULES_DEFINE}
166 )
167
137 168
138 file(GLOB FE_SRC ${DMDFE_PATH}/*.c) 169 file(GLOB FE_SRC ${DMDFE_PATH}/*.c)
139 file(GLOB FE_SRC_ROOT ${DMDFE_PATH}/root/*.c) 170 file(GLOB FE_SRC_ROOT ${DMDFE_PATH}/root/*.c)
140 file(GLOB_RECURSE GEN_SRC gen/*.cpp) 171 file(GLOB_RECURSE GEN_SRC gen/*.cpp)
141 file(GLOB IR_SRC ir/*.cpp) 172 file(GLOB IR_SRC ir/*.cpp)