| 29 | | set(RUNTIME_DIR ${PROJECT_PARENT_DIR}/${RUNTIME} CACHE PATH "runtime source dir" FORCE) |
|---|
| | 25 | if(D_VERSION EQUAL 1) |
|---|
| | 26 | # build tango for D1, druntime for D2 |
|---|
| | 27 | set(LDC_EXE ldc) |
|---|
| | 28 | # copy imports to runtime dir |
|---|
| | 29 | add_custom_command( |
|---|
| | 30 | OUTPUT ldc-imports |
|---|
| | 31 | COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/import/ldc ${RUNTIME_DIR}/ldc |
|---|
| | 32 | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/internal/ldc/bitmanip.d ${RUNTIME_DIR}/ldc |
|---|
| | 33 | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/internal/ldc/vararg.d ${RUNTIME_DIR}/ldc |
|---|
| | 34 | ) |
|---|
| | 35 | set(LDC_IMPORTS ldc-imports) |
|---|
| | 36 | # library names |
|---|
| | 37 | set(RUNTIME_CC tango-cc-tango) |
|---|
| | 38 | set(RUNTIME_GC tango-gc-basic) |
|---|
| | 39 | set(RUNTIME_DC ldc-runtime) |
|---|
| | 40 | set(RUNTIME_AIO tango-ldc) |
|---|
| | 41 | # set paths to source files, or fill lists directly |
|---|
| | 42 | set(RUNTIME_DC_DIR ${PROJECT_SOURCE_DIR}/internal) |
|---|
| | 43 | set(RUNTIME_GC_DIR ${RUNTIME_DIR}/lib/gc/basic) |
|---|
| | 44 | file(GLOB CORE_D ${RUNTIME_DIR}/lib/common/tango/core/*.d) |
|---|
| | 45 | file(GLOB CORE_C ${RUNTIME_DIR}/lib/common/tango/stdc/*.c) |
|---|
| | 46 | elseif(D_VERSION EQUAL 2) |
|---|
| | 47 | set(LDC_EXE ldc2) |
|---|
| | 48 | set(RUNTIME_CC druntime-core) |
|---|
| | 49 | set(RUNTIME_GC druntime-gc-basic) |
|---|
| | 50 | set(RUNTIME_DC druntime-rt-ldc) |
|---|
| | 51 | set(RUNTIME_AIO druntime-ldc) |
|---|
| | 52 | set(RUNTIME_DC_DIR ${RUNTIME_DIR}/src/compiler/ldc) |
|---|
| | 53 | set(RUNTIME_GC_DIR ${RUNTIME_DIR}/src/gc/basic) |
|---|
| | 54 | file(GLOB CORE_D ${RUNTIME_DIR}/src/common/core/*.d) |
|---|
| | 55 | file(GLOB CORE_C ${RUNTIME_DIR}/src/common/core/stdc/*.c) |
|---|
| | 56 | else(D_VERSION EQUAL 1) |
|---|
| | 57 | message(FATAL_ERROR "set d version to 1 or 2") |
|---|
| | 58 | endif(D_VERSION EQUAL 1) |
|---|
| 62 | | # |
|---|
| 63 | | |
|---|
| 64 | | # build tango for D1, druntime for D2 |
|---|
| 65 | | if(D_VERSION EQUAL 1) |
|---|
| 66 | | # library names |
|---|
| 67 | | set(RUNTIME_CC tango-cc-tango) |
|---|
| 68 | | set(RUNTIME_GC tango-gc-basic) |
|---|
| 69 | | set(RUNTIME_DC ldc-runtime) |
|---|
| 70 | | set(RUNTIME_AIO tango-ldc) |
|---|
| 71 | | # set paths to source files, or fill lists directly |
|---|
| 72 | | set(RUNTIME_DC_DIR ${PROJECT_SOURCE_DIR}/internal) |
|---|
| 73 | | set(RUNTIME_GC_DIR ${RUNTIME_DIR}/lib/gc/basic) |
|---|
| 74 | | file(GLOB CORE_D ${RUNTIME_DIR}/lib/common/tango/core/*.d) |
|---|
| 75 | | file(GLOB CORE_C ${RUNTIME_DIR}/lib/common/tango/stdc/*.c) |
|---|
| 76 | | # copy imports to runtime dir |
|---|
| 77 | | add_custom_command( |
|---|
| 78 | | TARGET ldc-runtime |
|---|
| 79 | | POST_BUILD |
|---|
| 80 | | COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/import/ldc ${RUNTIME_DIR}/ldc |
|---|
| 81 | | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/internal/ldc/bitmanip.d ${RUNTIME_DIR}/ldc |
|---|
| 82 | | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/internal/ldc/vararg.d ${RUNTIME_DIR}/ldc |
|---|
| 83 | | ) |
|---|
| 84 | | elseif(D_VERSION EQUAL 2) |
|---|
| 85 | | set(RUNTIME_CC druntime-core) |
|---|
| 86 | | set(RUNTIME_GC druntime-gc-basic) |
|---|
| 87 | | set(RUNTIME_DC druntime-rt-ldc) |
|---|
| 88 | | set(RUNTIME_AIO druntime-ldc) |
|---|
| 89 | | set(RUNTIME_DC_DIR ${RUNTIME_DIR}/src/compiler/ldc) |
|---|
| 90 | | set(RUNTIME_GC_DIR ${RUNTIME_DIR}/src/gc/basic) |
|---|
| 91 | | file(GLOB CORE_D ${RUNTIME_DIR}/src/common/core/*.d) |
|---|
| 92 | | file(GLOB CORE_C ${RUNTIME_DIR}/src/common/core/stdc/*.c) |
|---|
| 93 | | endif(D_VERSION EQUAL 1) |
|---|