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