Generate Packaged/Houses dirs as dependencies

Uses add_custom_command() to add rules for generating these directories,
rather than creating them only when CMakeLists.txt runs. With this
change, you can manually delete Packaged from the build directory
without causing subsequent builds to fail.
This commit is contained in:
Diomendius
2024-08-06 03:42:11 +12:00
parent 2681ffc5c6
commit ee60ef57a1

View File

@@ -511,7 +511,11 @@ target_include_directories(ConvertColorCursors PRIVATE
target_link_libraries(ConvertColorCursors PortabilityLayer)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Packaged/Houses")
add_custom_target(BuildDirs
BYPRODUCTS Packaged
COMMAND "${CMAKE_COMMAND}" -E make_directory Packaged/Houses
VERBATIM
)
set(DATA_FILES)
@@ -534,6 +538,7 @@ function(add_data_file NAME)
add_custom_command(
OUTPUT "Packaged/${NAME}"
BYPRODUCTS ${ARG_BYPRODUCTS}
DEPENDS BuildDirs
${ARG_COMMANDS}
${RM_BYPRODUCTS_COMMAND} ${RM_BYPRODUCTS_PATHS}
VERBATIM
@@ -646,7 +651,7 @@ function(add_house NAME)
"${BASE_PATH}.gpf"
BYPRODUCTS
${BYPRODUCTS}
DEPENDS hqx2gp gpr2gpa MergeGPF
DEPENDS hqx2gp gpr2gpa MergeGPF BuildDirs
COMMAND hqx2gp
"${CMAKE_SOURCE_DIR}/GliderProData/Houses/${NAME}.binhex"
"${CMAKE_SOURCE_DIR}/DefaultTimestamp.timestamp"
@@ -673,7 +678,7 @@ function(add_house NAME)
"${BASE_PATH}.mov.gpf"
BYPRODUCTS
"${BASE_PATH}.mov.gpa"
DEPENDS FTagData MergeGPF "${MOV_GPA_SRC}"
DEPENDS FTagData MergeGPF BuildDirs "${MOV_GPA_SRC}"
COMMAND FTagData
"${CMAKE_SOURCE_DIR}/DefaultTimestamp.timestamp"
"${BASE_PATH}.mov.gpf"