changeset 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 39b7c32cd010
children 9c63438c3207 4e388d9d0e25
files runtime/CMakeLists.txt
diffstat 1 files changed, 20 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/CMakeLists.txt	Mon Mar 09 21:38:24 2009 +0100
+++ b/runtime/CMakeLists.txt	Mon Mar 09 21:38:31 2009 +0100
@@ -29,15 +29,23 @@
 
 if(D_VERSION EQUAL 1)
 	# copy imports to runtime dir
-	set(LDC_IMPORTS ${RUNTIME_DIR}/ldc-imports)
-	add_custom_command(
-		OUTPUT ${LDC_IMPORTS}
-		COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/import/ldc/cstdarg.di ${RUNTIME_DIR}/ldc/cstdarg.di
-		COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/import/ldc/intrinsics.di ${RUNTIME_DIR}/ldc/intrinsics.di
-		COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/internal/ldc/bitmanip.d ${RUNTIME_DIR}/ldc/bitmanip.d
-		COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/internal/ldc/vararg.d ${RUNTIME_DIR}/ldc/vararg.d
-	)
-	set_source_files_properties(${LDC_IMPORTS} PROPERTIES SYMBOLIC YES)
+	set(LDC_IMPORTS)
+	macro(imports_file SRC)
+		get_filename_component(DEST ${SRC} NAME)
+		set(SRC  ${PROJECT_SOURCE_DIR}/${SRC})
+		set(DEST ${RUNTIME_DIR}/ldc/${DEST})
+		
+		list(APPEND LDC_IMPORTS ${DEST})
+		add_custom_command(
+			OUTPUT  ${DEST}
+			DEPENDS ${SRC}
+			COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SRC} ${DEST}
+		)
+	endmacro(imports_file)
+	imports_file(import/ldc/cstdarg.di)
+	imports_file(import/ldc/intrinsics.di)
+	imports_file(internal/ldc/bitmanip.d)
+	imports_file(internal/ldc/vararg.d)
 	# library names
 	set(RUNTIME_CC tango-cc-tango)
 	set(RUNTIME_GC tango-gc-basic)
@@ -109,12 +117,15 @@
 	set(OUTPUT_BC ${PROJECT_BINARY_DIR}/${OUTDIR}/${BASENAME}.bc)
 	list(APPEND ${OUTLIST_O} ${OUTPUT_O})
 	list(APPEND ${OUTLIST_BC} ${OUTPUT_BC})
+	
+	# Compile
 	add_custom_command(
 		OUTPUT
 			${OUTPUT_O}
 			${OUTPUT_BC}
 		COMMAND ${LDC_LOC} -c -I${INCDIR} -output-bc ${INPUT_D} -of${OUTPUT_O} ${D_FLAGS} ${MOREFLAGS}
 		DEPENDS ${LDC_LOC}
+			${INPUT_D}
 			${LDC_IMPORTS}
 			${PROJECT_BINARY_DIR}/../bin/${LDC_EXE}.conf
 	)