mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
CMake: Build 'contrib'
This commit is contained in:
parent
d61ecb8a8f
commit
3a9353c0ca
@ -42,6 +42,7 @@ option(BUILD_DTOOL "Build the dtool source tree." ON)
|
|||||||
option(BUILD_PANDA "Build the panda source tree." ON)
|
option(BUILD_PANDA "Build the panda source tree." ON)
|
||||||
option(BUILD_DIRECT "Build the direct source tree." ON)
|
option(BUILD_DIRECT "Build the direct source tree." ON)
|
||||||
option(BUILD_PANDATOOL "Build the pandatool source tree." ON)
|
option(BUILD_PANDATOOL "Build the pandatool source tree." ON)
|
||||||
|
option(BUILD_CONTRIB "Build the contrib source tree." ON)
|
||||||
option(BUILD_MODELS "Build/install the built-in models." ON)
|
option(BUILD_MODELS "Build/install the built-in models." ON)
|
||||||
|
|
||||||
# Include Panda3D packages
|
# Include Panda3D packages
|
||||||
@ -61,6 +62,10 @@ if(BUILD_PANDATOOL)
|
|||||||
add_subdirectory(pandatool "${CMAKE_BINARY_DIR}/pandatool")
|
add_subdirectory(pandatool "${CMAKE_BINARY_DIR}/pandatool")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_CONTRIB)
|
||||||
|
add_subdirectory(contrib "${CMAKE_BINARY_DIR}/contrib")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODELS)
|
if(BUILD_MODELS)
|
||||||
# We don't really "build" the models, just pzip them
|
# We don't really "build" the models, just pzip them
|
||||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/models/maps/"
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/models/maps/"
|
||||||
|
@ -41,6 +41,13 @@
|
|||||||
# Panda3D::Direct::p3direct
|
# Panda3D::Direct::p3direct
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
# Contrib - Extensions not part of the Panda3D core, but contributed by the
|
||||||
|
# community.
|
||||||
|
#
|
||||||
|
# Panda3D::Contrib::p3ai
|
||||||
|
# Panda3D::Contrib::p3rplight
|
||||||
|
#
|
||||||
|
#
|
||||||
# Framework - Panda's "p3framework" C++ framework.
|
# Framework - Panda's "p3framework" C++ framework.
|
||||||
#
|
#
|
||||||
# Panda3D::Framework::p3framework
|
# Panda3D::Framework::p3framework
|
||||||
@ -111,7 +118,7 @@ include("${_panda_config_prefix}/Panda3DPackages.cmake")
|
|||||||
|
|
||||||
set(_panda_components
|
set(_panda_components
|
||||||
Core Python Tools
|
Core Python Tools
|
||||||
Direct Framework Egg
|
Direct Contrib Framework Egg
|
||||||
Bullet ODE
|
Bullet ODE
|
||||||
FFmpeg
|
FFmpeg
|
||||||
OpenAL FMOD
|
OpenAL FMOD
|
||||||
|
18
contrib/CMakeLists.txt
Normal file
18
contrib/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if(NOT BUILD_PANDA)
|
||||||
|
message(FATAL_ERROR "Cannot build contrib without panda! Please enable the BUILD_PANDA option.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Include source directories
|
||||||
|
add_subdirectory(src/ai)
|
||||||
|
add_subdirectory(src/contribbase)
|
||||||
|
add_subdirectory(src/rplight)
|
||||||
|
|
||||||
|
if(HAVE_PYTHON)
|
||||||
|
add_python_module(ai p3ai
|
||||||
|
IMPORT panda3d.core COMPONENT ContribPython)
|
||||||
|
|
||||||
|
add_python_module(_rplight p3rplight
|
||||||
|
IMPORT panda3d.core COMPONENT ContribPython)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
export_targets(Contrib COMPONENT ContribDevel)
|
53
contrib/src/ai/CMakeLists.txt
Normal file
53
contrib/src/ai/CMakeLists.txt
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
set(P3AI_HEADERS
|
||||||
|
aiBehaviors.h
|
||||||
|
aiCharacter.h
|
||||||
|
aiGlobals.h
|
||||||
|
aiNode.h
|
||||||
|
aiPathFinder.h
|
||||||
|
aiWorld.h
|
||||||
|
arrival.h
|
||||||
|
config_ai.h
|
||||||
|
evade.h
|
||||||
|
flee.h
|
||||||
|
flock.h
|
||||||
|
meshNode.h
|
||||||
|
obstacleAvoidance.h
|
||||||
|
pathFind.h
|
||||||
|
pathFollow.h
|
||||||
|
pursue.h
|
||||||
|
seek.h
|
||||||
|
wander.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(P3AI_SOURCES
|
||||||
|
aiBehaviors.cxx
|
||||||
|
aiCharacter.cxx
|
||||||
|
aiNode.cxx
|
||||||
|
aiPathFinder.cxx
|
||||||
|
aiWorld.cxx
|
||||||
|
arrival.cxx
|
||||||
|
config_ai.cxx
|
||||||
|
evade.cxx
|
||||||
|
flee.cxx
|
||||||
|
flock.cxx
|
||||||
|
meshNode.cxx
|
||||||
|
obstacleAvoidance.cxx
|
||||||
|
pathFind.cxx
|
||||||
|
pathFollow.cxx
|
||||||
|
pursue.cxx
|
||||||
|
seek.cxx
|
||||||
|
wander.cxx
|
||||||
|
)
|
||||||
|
|
||||||
|
composite_sources(p3ai P3AI_SOURCES)
|
||||||
|
add_library(p3ai ${P3AI_HEADERS} ${P3AI_SOURCES})
|
||||||
|
set_target_properties(p3ai PROPERTIES DEFINE_SYMBOL BUILDING_PANDAAI)
|
||||||
|
target_link_libraries(p3ai p3contribbase)
|
||||||
|
target_interrogate(p3ai ALL)
|
||||||
|
|
||||||
|
install(TARGETS p3ai
|
||||||
|
EXPORT Contrib COMPONENT Contrib
|
||||||
|
DESTINATION lib
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
ARCHIVE COMPONENT ContribDevel)
|
||||||
|
install(FILES ${P3AI_HEADERS} COMPONENT ContribDevel DESTINATION include/panda3d)
|
14
contrib/src/contribbase/CMakeLists.txt
Normal file
14
contrib/src/contribbase/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
set(P3CONTRIBBASE_SOURCES
|
||||||
|
contribbase.cxx
|
||||||
|
)
|
||||||
|
|
||||||
|
set(P3CONTRIBBASE_HEADERS
|
||||||
|
contribbase.h contribsymbols.h
|
||||||
|
)
|
||||||
|
|
||||||
|
# Yes, INTERFACE: don't build it, there's no code!
|
||||||
|
add_library(p3contribbase INTERFACE)
|
||||||
|
target_link_libraries(p3contribbase INTERFACE panda)
|
||||||
|
|
||||||
|
install(TARGETS p3contribbase EXPORT Contrib COMPONENT Contrib)
|
||||||
|
install(FILES ${P3CONTRIBBASE_HEADERS} COMPONENT ContribDevel DESTINATION include/panda3d)
|
51
contrib/src/rplight/CMakeLists.txt
Normal file
51
contrib/src/rplight/CMakeLists.txt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
set(P3RPLIGHT_HEADERS
|
||||||
|
config_rplight.h
|
||||||
|
gpuCommand.h gpuCommand.I
|
||||||
|
gpuCommandList.h
|
||||||
|
iesDataset.h
|
||||||
|
internalLightManager.h internalLightManager.I
|
||||||
|
pointerSlotStorage.h
|
||||||
|
pssmCameraRig.h pssmCameraRig.I
|
||||||
|
rpLight.h rpLight.I
|
||||||
|
rpPointLight.h rpPointLight.I
|
||||||
|
rpSpotLight.h rpSpotLight.I
|
||||||
|
shadowAtlas.h shadowAtlas.I
|
||||||
|
shadowManager.h shadowManager.I
|
||||||
|
shadowSource.h shadowSource.I
|
||||||
|
tagStateManager.h tagStateManager.I
|
||||||
|
)
|
||||||
|
|
||||||
|
set(P3RPLIGHT_SOURCES
|
||||||
|
config_rplight.cxx
|
||||||
|
gpuCommand.cxx
|
||||||
|
gpuCommandList.cxx
|
||||||
|
iesDataset.cxx
|
||||||
|
internalLightManager.cxx
|
||||||
|
pssmCameraRig.cxx
|
||||||
|
rpLight.cxx
|
||||||
|
rpPointLight.cxx
|
||||||
|
rpSpotLight.cxx
|
||||||
|
shadowAtlas.cxx
|
||||||
|
shadowManager.cxx
|
||||||
|
shadowSource.cxx
|
||||||
|
tagStateManager.cxx
|
||||||
|
)
|
||||||
|
|
||||||
|
composite_sources(p3rplight P3RPLIGHT_SOURCES)
|
||||||
|
# STATIC, because it doesn't contain any EXPCL_ stuff
|
||||||
|
add_library(p3rplight STATIC ${P3RPLIGHT_HEADERS} ${P3RPLIGHT_SOURCES})
|
||||||
|
target_link_libraries(p3rplight p3contribbase)
|
||||||
|
target_interrogate(p3rplight ALL)
|
||||||
|
|
||||||
|
if(MODULE_TYPE STREQUAL "MODULE")
|
||||||
|
# Because it's STATIC (see above), we need to make it PIC so it can link into
|
||||||
|
# a Python module
|
||||||
|
set_target_properties(p3rplight PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(TARGETS p3rplight
|
||||||
|
EXPORT Contrib COMPONENT Contrib
|
||||||
|
DESTINATION lib
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
ARCHIVE COMPONENT ContribDevel)
|
||||||
|
install(FILES ${P3RPLIGHT_HEADERS} COMPONENT ContribDevel DESTINATION include/panda3d)
|
Loading…
x
Reference in New Issue
Block a user