Mercurial > projects > ldc
comparison runtime/CMakeLists.txt @ 1077:bb57632d27ea
Change the way imports are copied to the (Tango) runtime dir.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 09 Mar 2009 21:38:31 +0100 |
parents | 616d7c90bb6a |
children | c614ef596a20 |
comparison
equal
deleted
inserted
replaced
1076:39b7c32cd010 | 1077:bb57632d27ea |
---|---|
27 get_directory_property(PROJECT_PARENT_DIR DIRECTORY ${PROJECT_SOURCE_DIR} PARENT_DIRECTORY) | 27 get_directory_property(PROJECT_PARENT_DIR DIRECTORY ${PROJECT_SOURCE_DIR} PARENT_DIRECTORY) |
28 set(RUNTIME_DIR ${PROJECT_BINARY_DIR}/../${RUNTIME} CACHE PATH "runtime source dir") | 28 set(RUNTIME_DIR ${PROJECT_BINARY_DIR}/../${RUNTIME} CACHE PATH "runtime source dir") |
29 | 29 |
30 if(D_VERSION EQUAL 1) | 30 if(D_VERSION EQUAL 1) |
31 # copy imports to runtime dir | 31 # copy imports to runtime dir |
32 set(LDC_IMPORTS ${RUNTIME_DIR}/ldc-imports) | 32 set(LDC_IMPORTS) |
33 add_custom_command( | 33 macro(imports_file SRC) |
34 OUTPUT ${LDC_IMPORTS} | 34 get_filename_component(DEST ${SRC} NAME) |
35 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/import/ldc/cstdarg.di ${RUNTIME_DIR}/ldc/cstdarg.di | 35 set(SRC ${PROJECT_SOURCE_DIR}/${SRC}) |
36 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/import/ldc/intrinsics.di ${RUNTIME_DIR}/ldc/intrinsics.di | 36 set(DEST ${RUNTIME_DIR}/ldc/${DEST}) |
37 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/internal/ldc/bitmanip.d ${RUNTIME_DIR}/ldc/bitmanip.d | 37 |
38 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/internal/ldc/vararg.d ${RUNTIME_DIR}/ldc/vararg.d | 38 list(APPEND LDC_IMPORTS ${DEST}) |
39 ) | 39 add_custom_command( |
40 set_source_files_properties(${LDC_IMPORTS} PROPERTIES SYMBOLIC YES) | 40 OUTPUT ${DEST} |
41 DEPENDS ${SRC} | |
42 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SRC} ${DEST} | |
43 ) | |
44 endmacro(imports_file) | |
45 imports_file(import/ldc/cstdarg.di) | |
46 imports_file(import/ldc/intrinsics.di) | |
47 imports_file(internal/ldc/bitmanip.d) | |
48 imports_file(internal/ldc/vararg.d) | |
41 # library names | 49 # library names |
42 set(RUNTIME_CC tango-cc-tango) | 50 set(RUNTIME_CC tango-cc-tango) |
43 set(RUNTIME_GC tango-gc-basic) | 51 set(RUNTIME_GC tango-gc-basic) |
44 set(RUNTIME_DC ldc-runtime) | 52 set(RUNTIME_DC ldc-runtime) |
45 set(RUNTIME_AIO tango-base-ldc) | 53 set(RUNTIME_AIO tango-base-ldc) |
107 get_filename_component(BASENAME ${INPUT_D} NAME_WE) | 115 get_filename_component(BASENAME ${INPUT_D} NAME_WE) |
108 set(OUTPUT_O ${PROJECT_BINARY_DIR}/${OUTDIR}/${BASENAME}.o) | 116 set(OUTPUT_O ${PROJECT_BINARY_DIR}/${OUTDIR}/${BASENAME}.o) |
109 set(OUTPUT_BC ${PROJECT_BINARY_DIR}/${OUTDIR}/${BASENAME}.bc) | 117 set(OUTPUT_BC ${PROJECT_BINARY_DIR}/${OUTDIR}/${BASENAME}.bc) |
110 list(APPEND ${OUTLIST_O} ${OUTPUT_O}) | 118 list(APPEND ${OUTLIST_O} ${OUTPUT_O}) |
111 list(APPEND ${OUTLIST_BC} ${OUTPUT_BC}) | 119 list(APPEND ${OUTLIST_BC} ${OUTPUT_BC}) |
120 | |
121 # Compile | |
112 add_custom_command( | 122 add_custom_command( |
113 OUTPUT | 123 OUTPUT |
114 ${OUTPUT_O} | 124 ${OUTPUT_O} |
115 ${OUTPUT_BC} | 125 ${OUTPUT_BC} |
116 COMMAND ${LDC_LOC} -c -I${INCDIR} -output-bc ${INPUT_D} -of${OUTPUT_O} ${D_FLAGS} ${MOREFLAGS} | 126 COMMAND ${LDC_LOC} -c -I${INCDIR} -output-bc ${INPUT_D} -of${OUTPUT_O} ${D_FLAGS} ${MOREFLAGS} |
117 DEPENDS ${LDC_LOC} | 127 DEPENDS ${LDC_LOC} |
128 ${INPUT_D} | |
118 ${LDC_IMPORTS} | 129 ${LDC_IMPORTS} |
119 ${PROJECT_BINARY_DIR}/../bin/${LDC_EXE}.conf | 130 ${PROJECT_BINARY_DIR}/../bin/${LDC_EXE}.conf |
120 ) | 131 ) |
121 endmacro(dc) | 132 endmacro(dc) |
122 | 133 |