comparison CMakeLists.txt @ 1103:b30fe7e1dbb9

- Updated to DMD frontend 1.041. - Removed dmd/inifile.c , it's not under a free license, replaced with libconfig based config file.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Thu, 12 Mar 2009 20:37:27 +0100
parents d9820e08bb84
children cdb7e1167803
comparison
equal deleted inserted replaced
1102:ae950bd712d3 1103:b30fe7e1dbb9
7 include(FindPerl) 7 include(FindPerl)
8 if(NOT PERL) 8 if(NOT PERL)
9 message(FATAL_ERROR "perl not found") 9 message(FATAL_ERROR "perl not found")
10 endif(NOT PERL) 10 endif(NOT PERL)
11 11
12 include(FindPkgConfig)
13 if(NOT PKG_CONFIG_FOUND)
14 message(FATAL_ERROR "pkg-config not found")
15 else(NOT PKG_CONFIG_FOUND)
16 pkg_search_module(LIBCONFIGPP libconfig++)
17 if(NOT LIBCONFIGPP_FOUND)
18 message(FATAL_ERROR "libconfig++ not found")
19 endif(NOT LIBCONFIGPP_FOUND)
20 set(LIBCONFIG_CXXFLAGS ${LIBCONFIGPP_CFLAGS} CACHE STRING "libconfig++ compiler flags")
21 set(LIBCONFIG_LDFLAGS ${LIBCONFIGPP_LDFLAGS} CACHE STRING "libconfig++ linker flags")
22 endif(NOT PKG_CONFIG_FOUND)
23
24
12 find_program(LLVM_CONFIG llvm-config ${LLVM_INSTDIR}/bin DOC "path to llvm-config tool") 25 find_program(LLVM_CONFIG llvm-config ${LLVM_INSTDIR}/bin DOC "path to llvm-config tool")
13 # get llvm's install dir. a little hackish, we could do something like llvm-config --prefix, but this does as well 26 # get llvm's install dir. a little hackish, we could do something like llvm-config --prefix, but this does as well
14 string(REPLACE "/bin/llvm-config" "" LLVM_DIR ${LLVM_CONFIG}) 27 string(REPLACE "/bin/llvm-config" "" LLVM_DIR ${LLVM_CONFIG})
15 28
16 set(LLVM_INSTDIR ${LLVM_DIR} CACHE PATH "LLVM installation directory" FORCE) 29 set(LLVM_INSTDIR ${LLVM_DIR} CACHE PATH "LLVM installation directory" FORCE)
37 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --ldflags 50 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --ldflags
38 OUTPUT_VARIABLE LLVM_LDFLAGS 51 OUTPUT_VARIABLE LLVM_LDFLAGS
39 OUTPUT_STRIP_TRAILING_WHITESPACE 52 OUTPUT_STRIP_TRAILING_WHITESPACE
40 ) 53 )
41 execute_process( 54 execute_process(
42 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --libfiles bitwriter linker ipo instrumentation backend 55 COMMAND ${PERL_EXECUTABLE} ${LLVM_CONFIG} --libfiles bitwriter linker ipo instrumentation backend arm
43 OUTPUT_VARIABLE LLVM_LIBS 56 OUTPUT_VARIABLE LLVM_LIBS
44 OUTPUT_STRIP_TRAILING_WHITESPACE 57 OUTPUT_STRIP_TRAILING_WHITESPACE
45 ) 58 )
46 59
47 set(D_VERSION 1 CACHE STRING "D language version") 60 set(D_VERSION 1 CACHE STRING "D language version")
159 if(CMAKE_MINOR_VERSION LESS 6) 172 if(CMAKE_MINOR_VERSION LESS 6)
160 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "output dir for built executables") 173 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "output dir for built executables")
161 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib CACHE PATH "output dir for built libraries") 174 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib CACHE PATH "output dir for built libraries")
162 add_definitions(-DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TARGET}\\") 175 add_definitions(-DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TARGET}\\")
163 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE=\\"${DEFAULT_ALT_TARGET}\\") 176 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE=\\"${DEFAULT_ALT_TARGET}\\")
177 add_definitions(-DLDC_INSTALL_PREFIX=\\"${CMAKE_INSTALL_PREFIX}\\")
164 else(CMAKE_MINOR_VERSION LESS 6) 178 else(CMAKE_MINOR_VERSION LESS 6)
165 add_definitions(-DDEFAULT_TARGET_TRIPLE="${DEFAULT_TARGET}") 179 add_definitions(-DDEFAULT_TARGET_TRIPLE="${DEFAULT_TARGET}")
166 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE="${DEFAULT_ALT_TARGET}") 180 add_definitions(-DDEFAULT_ALT_TARGET_TRIPLE="${DEFAULT_ALT_TARGET}")
181 add_definitions(-DLDC_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
167 endif(CMAKE_MINOR_VERSION LESS 6) 182 endif(CMAKE_MINOR_VERSION LESS 6)
168 183
169 add_executable(${LDC_EXE} ${LDC_SOURCE_FILES}) 184 add_executable(${LDC_EXE} ${LDC_SOURCE_FILES})
170 185
171 # generate revision info 186 # generate revision info
188 203
189 set_target_properties( 204 set_target_properties(
190 ${LDC_EXE} PROPERTIES 205 ${LDC_EXE} PROPERTIES
191 OUTPUT_NAME ${LDC_EXE_NAME} 206 OUTPUT_NAME ${LDC_EXE_NAME}
192 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin 207 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin
193 COMPILE_FLAGS "${LLVM_CXXFLAGS} -Wno-deprecated -Wno-write-strings" 208 COMPILE_FLAGS "${LLVM_CXXFLAGS} ${LIBCONFIG_CXXFLAGS} -Wno-deprecated -Wno-write-strings"
194 ) 209 )
195 210
196 # LDFLAGS should actually be in target property LINK_FLAGS, but this works, and gets around linking problems 211 # LDFLAGS should actually be in target property LINK_FLAGS, but this works, and gets around linking problems
197 target_link_libraries(${LDC_EXE} "${LLVM_LDFLAGS} ${LLVM_LIBS}") 212 target_link_libraries(${LDC_EXE} "${LLVM_LDFLAGS} ${LLVM_LIBS} ${LIBCONFIG_LDFLAGS}")
198 if(WIN32) 213 if(WIN32)
199 target_link_libraries(${LDC_EXE} psapi) 214 target_link_libraries(${LDC_EXE} psapi)
200 set(CONF_INST_DIR bin) 215 set(CONF_INST_DIR bin)
201 endif(WIN32) 216 endif(WIN32)
202 217