Optimize building of HOG files and netgames libraries

Don't force building HOG files if dependency files are up-to-date.
Simplify building libraries by copying them into Descent3 directory.
This commit is contained in:
Azamat H. Hackimov 2024-10-20 21:55:46 +03:00
parent 74ac445ca6
commit 39b205b957
18 changed files with 141 additions and 69 deletions

View File

@ -78,6 +78,8 @@ if(FORCE_COLORED_OUTPUT)
endif() endif()
endif() endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(GNUInstallDirs) include(GNUInstallDirs)
if(FORCE_PORTABLE_INSTALL) if(FORCE_PORTABLE_INSTALL)
set(CMAKE_INSTALL_BINDIR ".") set(CMAKE_INSTALL_BINDIR ".")
@ -110,6 +112,15 @@ if(BUILD_TESTING)
add_subdirectory(tests) add_subdirectory(tests)
endif() endif()
# Define names for HOG files
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
set(HOG_NAME "linux")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(HOG_NAME "osx")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(HOG_NAME "win")
endif()
# rebuild d3_version.h every time # rebuild d3_version.h every time
add_custom_target(get_git_hash ALL) add_custom_target(get_git_hash ALL)

View File

@ -344,7 +344,34 @@ target_link_libraries(Descent3 PRIVATE
${PLATFORM_LIBS}) ${PLATFORM_LIBS})
target_include_directories(Descent3 PRIVATE ${PROJECT_BINARY_DIR}/lib) target_include_directories(Descent3 PRIVATE ${PROJECT_BINARY_DIR}/lib)
target_link_options(Descent3 PRIVATE $<$<PLATFORM_ID:Windows>:/DEBUG:FULL>) target_link_options(Descent3 PRIVATE $<$<PLATFORM_ID:Windows>:/DEBUG:FULL>)
add_dependencies(Descent3 get_git_hash Direct_TCP_IP_Hog Descent3_Online_TCP_IP_Hog HogFull NetgamesDir Parallax_Online_Hog) add_dependencies(Descent3
get_git_hash
Direct_TCP_IP_Hog
Descent3_Online_TCP_IP_Hog
HogFull
Parallax_Online_Hog
anarchy
coop
ctf
entropy
hoard
hyperanarchy
monsterball
roboanarchy
tanarchy
)
# Custom command for copying custom targets such HOG files
# We cannot use here TARGET_FILE_DIR generated expressions since custom target don't have one
add_custom_command(TARGET Descent3 POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/scripts/$<CONFIG>/d3-${HOG_NAME}.hog" "$<TARGET_FILE_DIR:Descent3>"
COMMAND ${CMAKE_COMMAND} -E make_directory "$<TARGET_FILE_DIR:Descent3>/online"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/netcon/descent3onlineclient/$<CONFIG>/Descent3 Online.d3c" "$<TARGET_FILE_DIR:Descent3>/online"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/netcon/lanclient/$<CONFIG>/Direct TCP~IP.d3c" "$<TARGET_FILE_DIR:Descent3>/online"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/netcon/mtclient/$<CONFIG>/Parallax Online.d3c" "$<TARGET_FILE_DIR:Descent3>/online"
COMMENT "Copying HOG-files into Descent3 work dir"
)
install(TARGETS Descent3 RUNTIME BUNDLE DESTINATION .) install(TARGETS Descent3 RUNTIME BUNDLE DESTINATION .)
if(MSVC) if(MSVC)
install(FILES $<TARGET_PDB_FILE:Descent3> DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES $<TARGET_PDB_FILE:Descent3> DESTINATION ${CMAKE_INSTALL_BINDIR})

58
cmake/HogMaker.cmake Normal file
View File

@ -0,0 +1,58 @@
# Descent 3
# Copyright (C) 2024 Descent Developers
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# - Function making a HOG file based on supplied filelist.
#
# This module provides function MakeHog() used for building HOG files.
# MakeHog() registers custom target TARGET which can be used as dependency.
#
# MakeHog(
# <TARGET target>
# <OUTPUT d3-full-win32.hog>
# <INPUT_FILE filelist.txt>
# [SEARCH_PATH additional_dirs]
# [DEPENDS additional_dependencies]
# )
#
function(MakeHog)
set(options)
set(oneValueArgs INPUT_FILE OUTPUT TARGET)
set(multiValueArgs DEPENDS SEARCH_PATH)
cmake_parse_arguments(PARSE_ARGV 0
"HOG"
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
)
# Register custom target for tracking dependencies
add_custom_target("${HOG_TARGET}"
DEPENDS "${HOG_OUTPUT}"
)
add_custom_command(OUTPUT "${HOG_OUTPUT}"
COMMAND $<TARGET_FILE:HogMaker>
"${HOG_OUTPUT}"
"${HOG_INPUT_FILE}"
"${HOG_SEARCH_PATH}"
DEPENDS HogMaker ${HOG_INPUT_FILE} ${HOG_DEPENDS}
COMMENT "Generate ${HOG_OUTPUT}"
COMMAND_EXPAND_LISTS
)
endfunction()

View File

@ -26,14 +26,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set_target_properties(Descent3_Online_TCP_IP PROPERTIES SUFFIX ".dylib") set_target_properties(Descent3_Online_TCP_IP PROPERTIES SUFFIX ".dylib")
endif() endif()
add_custom_target(Descent3_Online_TCP_IP_Hog include(HogMaker)
COMMAND $<TARGET_FILE:HogMaker> MakeHog(
"$<TARGET_FILE_DIR:Descent3>/online/Descent3 Online.d3c" TARGET Descent3_Online_TCP_IP_Hog
"${CMAKE_SOURCE_DIR}/netcon/descent3onlineclient/d3online.d3c.txt" OUTPUT "$<CONFIG>/Descent3 Online.d3c"
"${CMAKE_SOURCE_DIR}/scripts/data/fullhog/" INPUT_FILE "${CMAKE_SOURCE_DIR}/netcon/descent3onlineclient/d3online.d3c.txt"
"$<TARGET_FILE_DIR:Descent3_Online_TCP_IP>" SEARCH_PATH "$<TARGET_FILE_DIR:Descent3_Online_TCP_IP>" "${CMAKE_SOURCE_DIR}/scripts/data/fullhog/"
DEPENDS Descent3_Online_TCP_IP
DEPENDS Descent3_Online_TCP_IP HogMaker
COMMENT "Generate 'Descent3 Online.d3c'"
) )
install(FILES "$<TARGET_FILE_DIR:Descent3>/online/Descent3 Online.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/Descent3 Online.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online)

View File

@ -4,4 +4,3 @@ Descent3 Online.dll
Descent3 Online.dylib Descent3 Online.dylib
d3online_main.ogf d3online_main.ogf
d3online_game.ogf d3online_game.ogf

View File

@ -19,14 +19,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set_target_properties(Direct_TCP_IP PROPERTIES SUFFIX ".dylib") set_target_properties(Direct_TCP_IP PROPERTIES SUFFIX ".dylib")
endif() endif()
add_custom_target(Direct_TCP_IP_Hog include(HogMaker)
COMMAND $<TARGET_FILE:HogMaker> MakeHog(
"$<TARGET_FILE_DIR:Descent3>/online/Direct TCP~IP.d3c" TARGET Direct_TCP_IP_Hog
"${CMAKE_SOURCE_DIR}/netcon/lanclient/TCP_IP.d3c.txt" OUTPUT "$<CONFIG>/Direct TCP~IP.d3c"
"${CMAKE_SOURCE_DIR}/scripts/data/fullhog/" INPUT_FILE "${CMAKE_SOURCE_DIR}/netcon/lanclient/TCP_IP.d3c.txt"
"$<TARGET_FILE_DIR:Direct_TCP_IP>" SEARCH_PATH "$<TARGET_FILE_DIR:Direct_TCP_IP>" "${CMAKE_SOURCE_DIR}/scripts/data/fullhog/"
DEPENDS Direct_TCP_IP
DEPENDS Direct_TCP_IP HogMaker
COMMENT "Generate 'Direct TCP~IP.d3c'"
) )
install(FILES "$<TARGET_FILE_DIR:Descent3>/online/Direct TCP~IP.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/Direct TCP~IP.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online)

View File

@ -29,14 +29,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set_target_properties(Parallax_Online PROPERTIES SUFFIX ".dylib") set_target_properties(Parallax_Online PROPERTIES SUFFIX ".dylib")
endif() endif()
add_custom_target(Parallax_Online_Hog include(HogMaker)
COMMAND $<TARGET_FILE:HogMaker> MakeHog(
"$<TARGET_FILE_DIR:Descent3>/online/Parallax Online.d3c" TARGET Parallax_Online_Hog
"${CMAKE_SOURCE_DIR}/netcon/mtclient/Parallax_Online.d3c.txt" OUTPUT "$<CONFIG>/Parallax Online.d3c"
"${CMAKE_SOURCE_DIR}/scripts/data/fullhog/" INPUT_FILE "${CMAKE_SOURCE_DIR}/netcon/mtclient/Parallax_Online.d3c.txt"
"$<TARGET_FILE_DIR:Parallax_Online>" SEARCH_PATH "$<TARGET_FILE_DIR:Parallax_Online>" "${CMAKE_SOURCE_DIR}/scripts/data/fullhog/"
DEPENDS Parallax_Online
DEPENDS Parallax_Online HogMaker
COMMENT "Generate 'Parallax Online.d3c'"
) )
install(FILES "$<TARGET_FILE_DIR:Descent3>/online/Parallax Online.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/Parallax Online.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online)

View File

@ -11,16 +11,3 @@ add_subdirectory(hyperanarchy)
add_subdirectory(monsterball) add_subdirectory(monsterball)
add_subdirectory(roboanarchy) add_subdirectory(roboanarchy)
add_subdirectory(tanarchy) add_subdirectory(tanarchy)
add_custom_target(NetgamesDir
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:anarchy> "$<TARGET_FILE_DIR:Descent3>/netgames/Anarchy.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:coop> "$<TARGET_FILE_DIR:Descent3>/netgames/Co-op.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ctf> "$<TARGET_FILE_DIR:Descent3>/netgames/CTF.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:entropy> "$<TARGET_FILE_DIR:Descent3>/netgames/Entropy.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hoard> "$<TARGET_FILE_DIR:Descent3>/netgames/Hoard.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hyperanarchy> "$<TARGET_FILE_DIR:Descent3>/netgames/Hyper-Anarchy.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:monsterball> "$<TARGET_FILE_DIR:Descent3>/netgames/Monsterball.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:roboanarchy> "$<TARGET_FILE_DIR:Descent3>/netgames/Robo-Anarchy.d3m"
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:tanarchy> "$<TARGET_FILE_DIR:Descent3>/netgames/Team Anarchy.d3m"
COMMENT "Create netgames/ directory"
)

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -9,6 +9,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -7,6 +7,7 @@ add_library(${NETGAME_MODULE} MODULE ${CPPS} ${HEADERS})
set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden") set_target_properties(${NETGAME_MODULE} PROPERTIES CXX_VISIBILITY_PRESET "hidden")
set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "") set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m") set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
set_target_properties(${NETGAME_MODULE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:Descent3>/netgames")
target_link_libraries(${NETGAME_MODULE} PRIVATE target_link_libraries(${NETGAME_MODULE} PRIVATE
dmfc dmfc

View File

@ -67,12 +67,8 @@ set(SCRIPTS
SewerRat SewerRat
testscript testscript
TrainingMission TrainingMission
Y2K) Y2K
)
#add_custom_target(HogDemo-copy
# COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/scripts/data/demohog ${CMAKE_BINARY_DIR}/scripts/data/demohog/
# COMMENT "Copy script/data/demohog directory"
#)
add_library(dallas STATIC DallasFuncs.cpp osiris_import.cpp osiris_vector.cpp) add_library(dallas STATIC DallasFuncs.cpp osiris_import.cpp osiris_vector.cpp)
set_target_properties(dallas PROPERTIES PREFIX "") set_target_properties(dallas PROPERTIES PREFIX "")
@ -94,25 +90,15 @@ foreach(SCRIPT ${SCRIPTS})
endif() endif()
endforeach() endforeach()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") include(HogMaker)
set(HOG_NAME "linux") MakeHog(
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") TARGET HogFull
set(HOG_NAME "osx") OUTPUT "$<CONFIG>/d3-${HOG_NAME}.hog"
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") INPUT_FILE "${CMAKE_SOURCE_DIR}/scripts/data/fullhog/d3-${HOG_NAME}-fullhog.txt"
set(HOG_NAME "win") SEARCH_PATH "$<TARGET_FILE_DIR:AIGame>"
endif() DEPENDS ${SCRIPTS}
add_custom_target(HogFull
COMMAND $<TARGET_FILE:HogMaker>
"$<TARGET_FILE_DIR:Descent3>/d3-${HOG_NAME}.hog"
"${CMAKE_SOURCE_DIR}/scripts/data/fullhog/d3-${HOG_NAME}-fullhog.txt"
"$<TARGET_FILE_DIR:AIGame>"
DEPENDS ${SCRIPTS} HogMaker data/fullhog/d3-${HOG_NAME}-fullhog.txt
COMMENT "Generate fullhog/d3-${HOG_NAME}.hog"
) )
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/d3-${HOG_NAME}.hog" DESTINATION ${CMAKE_INSTALL_DATADIR})
# Place file next to Descent3 executable on installation
install(FILES "$<TARGET_FILE_DIR:Descent3>/d3-${HOG_NAME}.hog" DESTINATION ${CMAKE_INSTALL_DATADIR})
# FIXME: there may be only one d3-linux.hog, need deal with demo somehow. # FIXME: there may be only one d3-linux.hog, need deal with demo somehow.
# add_custom_target(HogLinuxDemo # add_custom_target(HogLinuxDemo