Changeset 785:ac39e5449ca5
- Timestamp:
- 11/24/08 12:17:58
(2 months ago)
- Author:
- Christian Kamm <kamm incasoftware de>
- branch:
- default
- Message:
Apply Elrood's CMake changes from #124. Thanks a lot!
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r758 |
r785 |
|
| 10 | 10 | endif(NOT PERL) |
|---|
| 11 | 11 | |
|---|
| 12 | | set(LLVM_INSTDIR CACHE PATH "LLVM installation directory") |
|---|
| | 12 | 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 |
|---|
| | 14 | string(REPLACE "/bin/llvm-config" "" LLVM_DIR ${LLVM_CONFIG}) |
|---|
| 13 | 15 | |
|---|
| 14 | | find_program(LLVM_CONFIG llvm-config ${LLVM_INSTDIR}/bin DOC "path to llvm-config tool") |
|---|
| 15 | | if(NOT LLVM_CONFIG) |
|---|
| 16 | | message(FATAL_ERROR "llvm-config not found") |
|---|
| 17 | | endif(NOT LLVM_CONFIG) |
|---|
| | 16 | set(LLVM_INSTDIR ${LLVM_DIR} CACHE PATH "LLVM installation directory" FORCE) |
|---|
| | 17 | if(NOT LLVM_INSTDIR) |
|---|
| | 18 | message(FATAL_ERROR "llvm not found") |
|---|
| | 19 | endif(NOT LLVM_INSTDIR) |
|---|
| 18 | 20 | |
|---|
| 19 | 21 | execute_process( |
|---|
| … | … | |
| 37 | 39 | OUTPUT_STRIP_TRAILING_WHITESPACE |
|---|
| 38 | 40 | ) |
|---|
| 39 | | # get llvm's install dir. a little hackish, we could do something like llvm-config --prefix, but this does as well |
|---|
| 40 | | string(REPLACE "/bin/llvm-config" "" LLVM_INSTDIR ${LLVM_CONFIG}) |
|---|
| 41 | 41 | |
|---|
| 42 | 42 | set(D_VERSION 1 CACHE STRING "D language version") |
|---|
| | 43 | option(USE_BOEHM_GC "use the Boehm garbage collector internally") |
|---|
| | 44 | |
|---|
| 43 | 45 | if(D_VERSION EQUAL 1) |
|---|
| 44 | 46 | set(DMDFE_PATH dmd) |
|---|
| … | … | |
| 70 | 72 | idgen impcnvgen PROPERTIES |
|---|
| 71 | 73 | LINKER_LANGUAGE CXX |
|---|
| | 74 | RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${DMDFE_PATH} |
|---|
| 72 | 75 | ) |
|---|
| 73 | 76 | get_target_property(IDGEN_LOC idgen LOCATION) |
|---|
| … | … | |
| 128 | 131 | -D_DH |
|---|
| 129 | 132 | -DOPAQUE_VTBLS |
|---|
| 130 | | -DUSE_BOEHM_GC=0 |
|---|
| 131 | 133 | -DX86_REVERSE_PARAMS |
|---|
| 132 | 134 | -DX86_PASS_IN_EAX |
|---|
| … | … | |
| 135 | 137 | if(UNIX) |
|---|
| 136 | 138 | add_definitions(-DPOSIX) |
|---|
| 137 | | #set(CONF_SUFFIX conf) |
|---|
| 138 | 139 | endif(UNIX) |
|---|
| 139 | 140 | |
|---|
| | 141 | if(USE_BOEHM_GC) |
|---|
| | 142 | add_definitions(-DUSE_BOEHM_GC) |
|---|
| | 143 | endif(USE_BOEHM_GC) |
|---|
| | 144 | |
|---|
| 140 | 145 | if(CMAKE_MINOR_VERSION LESS 6) |
|---|
| | 146 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "output dir for built executables") |
|---|
| | 147 | set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib CACHE PATH "output dir for built libraries") |
|---|
| 141 | 148 | add_definitions(-DDEFAULT_TARGET_TRIPLE=\\"${DEFAULT_TARGET}\\") |
|---|
| 142 | 149 | else(CMAKE_MINOR_VERSION LESS 6) |
|---|
| … | … | |
| 156 | 163 | if(WIN32) |
|---|
| 157 | 164 | target_link_libraries(${LDC_EXE} psapi) |
|---|
| 158 | | #set(CONF_SUFFIX ini) |
|---|
| 159 | 165 | endif(WIN32) |
|---|
| 160 | 166 | |
|---|
| 161 | | # cmake pre 2.6 doesn't support the RUNTIME_OUTPUT_DIRECTORY target property |
|---|
| 162 | | if(CMAKE_MINOR_VERSION LESS 6) |
|---|
| 163 | | get_target_property(LDC_LOC ${LDC_EXE} LOCATION) |
|---|
| 164 | | add_custom_command( |
|---|
| 165 | | TARGET ${LDC_EXE} |
|---|
| 166 | | POST_BUILD |
|---|
| 167 | | COMMAND ${CMAKE_COMMAND} -E copy ${LDC_LOC} ${PROJECT_BINARY_DIR}/bin/ |
|---|
| 168 | | COMMAND ${CMAKE_COMMAND} -E remove ${LDC_LOC} |
|---|
| 169 | | ) |
|---|
| 170 | | endif(CMAKE_MINOR_VERSION LESS 6) |
|---|
| | 167 | if(USE_BOEHM_GC) |
|---|
| | 168 | target_link_libraries(${LDC_EXE} gc) |
|---|
| | 169 | endif(USE_BOEHM_GC) |
|---|
| 171 | 170 | |
|---|
| 172 | | #configure_file(${PROJECT_SOURCE_DIR}/ldc.conf.in ${PROJECT_BINARY_DIR}/bin/ldc.${CONF_SUFFIX}) |
|---|
| 173 | | |
|---|
| 174 | | # TODO: runtime build |
|---|
| 175 | | # possible problems: |
|---|
| 176 | | # with an oos-build, how to set up a working environment, with conf/ini and tango in place? |
|---|
| 177 | | # patch tango? how to determine if that's already been done? |
|---|
| 178 | | # std but compatible runtime build, or shared, which doesn't yet work on every platform |
|---|
| 179 | | # |
|---|
| | 171 | get_target_property(LDC_LOC ${LDC_EXE} LOCATION) |
|---|
| | 172 | |
|---|
| 180 | 173 | # TODO: install target |
|---|
| 181 | 174 | # TODO: testrun |
|---|
| | 175 | |
|---|
| | 176 | add_subdirectory(runtime EXCLUDE_FROM_ALL) |
|---|
| r741 |
r785 |
|
| 346 | 346 | VersionCondition::addPredefinedGlobalIdent("all"); |
|---|
| 347 | 347 | |
|---|
| 348 | | #if _WIN32 |
|---|
| 349 | | inifile(global.params.argv0, "ldc.ini"); |
|---|
| 350 | | #elif POSIX |
|---|
| | 348 | //#if _WIN32 |
|---|
| | 349 | // inifile(global.params.argv0, "ldc.ini"); |
|---|
| | 350 | //#elif POSIX |
|---|
| 351 | 351 | inifile(global.params.argv0, "ldc.conf"); |
|---|
| 352 | | #else |
|---|
| 353 | | #error |
|---|
| 354 | | #endif |
|---|
| | 352 | //#else |
|---|
| | 353 | //#error |
|---|
| | 354 | //#endif |
|---|
| 355 | 355 | getenv_setargv("DFLAGS", &argc, &argv); |
|---|
| 356 | 356 | |
|---|