mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
CMake: Move copying of models to build-time.
This commit is contained in:
parent
aed55d4e7e
commit
f0c9772396
@ -64,21 +64,32 @@ if(BUILD_CONTRIB)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODELS)
|
||||
# We don't really "build" the models, just pzip them
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/models/maps/"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/models/maps")
|
||||
run_pzip(models
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/models/"
|
||||
"${PROJECT_BINARY_DIR}/models"
|
||||
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||
*.egg)
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/models"
|
||||
FILES_MATCHING PATTERN *.rgb PATTERN *.png PATTERN *.jpg PATTERN *.wav)
|
||||
run_pzip(dmodels
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
|
||||
"${PROJECT_BINARY_DIR}/models"
|
||||
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||
*.egg)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/models"
|
||||
|
||||
add_custom_command(TARGET models
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DSOURCE="${CMAKE_CURRENT_SOURCE_DIR}/models/maps/"
|
||||
-DDESTINATION="${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models/maps"
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/scripts/CopyPattern.cmake
|
||||
COMMENT "Copying models/maps")
|
||||
add_custom_command(TARGET dmodels
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DSOURCE="${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
|
||||
-DDESTINATION="${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||
-DFILES_MATCHING="PATTERN;*.rgb;PATTERN;*.png;PATTERN;*.jpg;PATTERN;*.wav"
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/scripts/CopyPattern.cmake
|
||||
COMMENT "Copying dmodels' assets")
|
||||
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||
COMPONENT Models DESTINATION share/panda3d)
|
||||
endif()
|
||||
|
||||
|
27
cmake/scripts/CopyPattern.cmake
Normal file
27
cmake/scripts/CopyPattern.cmake
Normal file
@ -0,0 +1,27 @@
|
||||
# Filename: CopyPattern.cmake
|
||||
#
|
||||
# Description: This is a standalone version of CMake's file(COPY) command so we
|
||||
# can use all of its features during build-time instead of
|
||||
# config-time.
|
||||
#
|
||||
# Usage:
|
||||
# This script is invoked via add_custom_target, like this:
|
||||
# cmake -D SOURCE=[source directory]
|
||||
# -D DESTINATION=[destination directory]
|
||||
# -D FILES_MATCHING="[globbing patterns passed to file(COPY)]"
|
||||
# -P CopyPattern.cmake
|
||||
if(NOT DEFINED SOURCE OR NOT DEFINED DESTINATION)
|
||||
message(SEND_ERROR "CopyPattern.cmake requires SOURCE and DESTINATION to be
|
||||
defined.")
|
||||
endif()
|
||||
|
||||
if(DEFINED FILES_MATCHING)
|
||||
separate_arguments(FILES_MATCHING UNIX_COMMAND ${FILES_MATCHING})
|
||||
|
||||
file(COPY "${SOURCE}"
|
||||
DESTINATION "${DESTINATION}"
|
||||
FILES_MATCHING ${FILES_MATCHING})
|
||||
else()
|
||||
file(COPY "${SOURCE}"
|
||||
DESTINATION "${DESTINATION}")
|
||||
endif()
|
Loading…
x
Reference in New Issue
Block a user