Mercurial > projects > ldc
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) |