[CMAKE] Avoid use of the LOCATION property for asm16 files. CORE-14509
authorThomas Faber <thomas.faber@reactos.org>
Fri, 30 Mar 2018 11:03:40 +0000 (13:03 +0200)
committerThomas Faber <thomas.faber@reactos.org>
Fri, 30 Mar 2018 18:28:25 +0000 (20:28 +0200)
In particular, ntvdm needs to post-process command.com, so this adds
a BINARY_PATH property to such files instead.

subsystems/mvdm/asm16.cmake
subsystems/mvdm/dos/CMakeLists.txt
subsystems/mvdm/ntvdm/CMakeLists.txt

index c25f676..4aea5f8 100644 (file)
@@ -56,8 +56,7 @@ function(add_asm16_bin _target _binary_file _base_address)
 
     add_custom_target(${_target} ALL DEPENDS ${_binary_file})
     # set_target_properties(${_target} PROPERTIES OUTPUT_NAME ${_target} SUFFIX ".bin")
-    set_target_properties(${_target} PROPERTIES LOCATION_${CMAKE_BUILD_TYPE} ${_binary_file}) ## Support of $<TARGET_FILE:xxx> is limited to add_executable() or add_library()
-    set_target_properties(${_target} PROPERTIES LOCATION ${_binary_file})                     ## Support of $<TARGET_FILE:xxx> is limited to add_executable() or add_library()
+    set_target_properties(${_target} PROPERTIES BINARY_PATH ${_binary_file})
     add_clean_target(${_target})
 endfunction()
 
@@ -120,8 +119,7 @@ function(add_asm16_bin _target _binary_file _base_address)
 
     add_custom_target(${_target} ALL DEPENDS ${_binary_file})
     # set_target_properties(${_target} PROPERTIES OUTPUT_NAME ${_target} SUFFIX ".bin")
-    set_target_properties(${_target} PROPERTIES LOCATION_${CMAKE_BUILD_TYPE} ${_binary_file}) ## Support of $<TARGET_FILE:xxx> is limited to add_executable() or add_library()
-    set_target_properties(${_target} PROPERTIES LOCATION ${_binary_file})                     ## Support of $<TARGET_FILE:xxx> is limited to add_executable() or add_library()
+    set_target_properties(${_target} PROPERTIES BINARY_PATH ${_binary_file})
     add_clean_target(${_target})
 endfunction()
 
index bf7f563..dd6b45f 100644 (file)
@@ -1,4 +1,4 @@
 
 include_directories(${REACTOS_SOURCE_DIR}/subsystems/mvdm/dos)
 add_asm16_bin(command ${CMAKE_CURRENT_BINARY_DIR}/command.com 0x0100 command.S)
-add_cd_file(TARGET command DESTINATION reactos/system32 FOR all)
+add_cd_file(TARGET command FILE $<TARGET_PROPERTY:command,BINARY_PATH> DESTINATION reactos/system32 FOR all)
index 30a4398..ff102d8 100644 (file)
@@ -4,14 +4,10 @@ PROJECT(NTVDM)
 #####################################
 # Generate the integrated COMMAND.COM
 #
-
-# Retrieve the full path to the generated file of the 'command' target
-get_target_property(_command_com_file command LOCATION)
-
 add_custom_command(
     OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/command_com.c ${CMAKE_CURRENT_BINARY_DIR}/command_com.h
-    COMMAND native-bin2c ${_command_com_file} ${CMAKE_CURRENT_BINARY_DIR}/command_com.c ${CMAKE_CURRENT_BINARY_DIR}/command_com.h BIN CommandCom
-    DEPENDS native-bin2c command ${_command_com_file})
+    COMMAND native-bin2c $<TARGET_PROPERTY:command,BINARY_PATH> ${CMAKE_CURRENT_BINARY_DIR}/command_com.c ${CMAKE_CURRENT_BINARY_DIR}/command_com.h BIN CommandCom
+    DEPENDS native-bin2c command)
 #####################################
 
 include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/libs/fast486)