mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 17:35:34 -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()
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODELS)
|
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
|
run_pzip(models
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/models/"
|
"${CMAKE_CURRENT_SOURCE_DIR}/models/"
|
||||||
"${PROJECT_BINARY_DIR}/models"
|
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||||
*.egg)
|
*.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
|
run_pzip(dmodels
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
|
"${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
|
||||||
"${PROJECT_BINARY_DIR}/models"
|
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
|
||||||
*.egg)
|
*.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)
|
COMPONENT Models DESTINATION share/panda3d)
|
||||||
endif()
|
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