Browse Source

Always use file symlinks for dummy custom library targets.
So that when in fallback mode, the post-build step will use copy_if_different for each individual file to avoid unnecessary file copying and triggering subsequent dependency to rebuild. Close #913.

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
5961b7f2d6

+ 1 - 1
Source/ThirdParty/Mustache/CMakeLists.txt

@@ -28,4 +28,4 @@ add_custom_target (${TARGET_NAME} ALL)   # Dummy target just so that its post-bu
 set (STATIC_LIBRARY_TARGETS ${STATIC_LIBRARY_TARGETS} ${TARGET_NAME} PARENT_SCOPE)
 
 # Install headers for building the Urho3D library
-install_header_files (DIRECTORY ./ DESTINATION ${DEST_INCLUDE_DIR}/ThirdParty/Mustache FILES_MATCHING PATTERN *.hpp BUILD_TREE_ONLY)
+install_header_files (DIRECTORY ./ DESTINATION ${DEST_INCLUDE_DIR}/ThirdParty/Mustache FILES_MATCHING PATTERN *.hpp USE_FILE_SYMLINK BUILD_TREE_ONLY)

+ 1 - 1
Source/ThirdParty/rapidjson/CMakeLists.txt

@@ -28,4 +28,4 @@ add_custom_target (${TARGET_NAME} ALL)   # Dummy target just so that its post-bu
 set (STATIC_LIBRARY_TARGETS ${STATIC_LIBRARY_TARGETS} ${TARGET_NAME} PARENT_SCOPE)
 
 # Install headers for building the Urho3D library
-install_header_files (DIRECTORY include/rapidjson/ DESTINATION ${DEST_INCLUDE_DIR}/ThirdParty/rapidjson FILES_MATCHING PATTERN *.h BUILD_TREE_ONLY)  # Note: the trailing slash is significant
+install_header_files (DIRECTORY include/rapidjson/ DESTINATION ${DEST_INCLUDE_DIR}/ThirdParty/rapidjson FILES_MATCHING PATTERN *.h USE_FILE_SYMLINK BUILD_TREE_ONLY)  # Note: the trailing slash is significant

+ 3 - 0
Source/Tools/CMakeLists.txt

@@ -43,6 +43,9 @@ if ((CMAKE_CROSSCOMPILING OR IOS) AND URHO3D_PACKAGING)
     ExternalProject_Add (PackageTool
         SOURCE_DIR ${CMAKE_SOURCE_DIR}/Source/Tools/PackageTool
         CMAKE_ARGS -DURHO3D_NOABI=1 -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/bin/tool -DBAKED_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DBAKED_CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} ${IOS_FIX})
+    if (CMAKE_HOST_WIN32 AND NOT URHO3D_MKLINK)
+        add_dependencies (PackageTool Urho3D)   # Ensure Urho3D headers are fresh when building PackageTool externally on Windows host system without MKLINK
+    endif ()
     install (PROGRAMS ${CMAKE_BINARY_DIR}/bin/tool/PackageTool DESTINATION ${DEST_RUNTIME_DIR}/tool)
 endif ()