open_toontown_panda3d/CMakeLists.txt

82 lines
2.7 KiB
CMake

# We require 2.8.4 because earlier releases had a bug
# with invalid HEADER_FILE_ONLY behavior in MSVC 2010.
cmake_minimum_required(VERSION 2.8.4)
project(Panda3D)
enable_testing()
# Add generic modules to cmake module path,
# and add Panda3D specific modules to cmake module path
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/macros/")
# Include global modules needed for configure scripts
include(PackageConfig) # Defines package_option AND target_use_packages
# Configure Panda3D
include(dtool/PandaVersion.cmake)
include(dtool/Package.cmake)
include(dtool/Config.cmake)
# Include global modules
include(AutoInclude) # Implements automatic include_directories finding
include(AddBisonTarget) # Defines add_bison_target function
include(AddFlexTarget) # Defines add_flex_target function
include(CompositeSources) # Defines composite_sources function
include(Interrogate) # Defines target_interrogate AND add_python_module
# Add the include path for source and header files generated by CMake
include_directories("${CMAKE_BINARY_DIR}/include")
# Determine which trees to build.
option(BUILD_DTOOL "Build the dtool source tree." ON)
option(BUILD_PANDA "Build the panda source tree." ON)
option(BUILD_DIRECT "Build the direct source tree." ON)
option(BUILD_PANDATOOL "Build the pandatool source tree." ON)
# Include Panda3D packages
if(BUILD_DTOOL)
add_subdirectory(dtool)
endif()
if(BUILD_PANDA)
add_subdirectory(panda)
endif()
if(BUILD_DIRECT)
add_subdirectory(direct)
endif()
if(BUILD_PANDATOOL)
add_subdirectory(pandatool)
endif()
# This bit is to generate the 'pandac' compatibility shim. It's deprecated now,
# but in older versions of Panda3D, one would use
# from pandac.PandaModules import *
# instead of
# from panda3d.FOO import *
if(HAVE_PYTHON)
# Generate PandaModules:
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/pandac/PandaModules.py"
"\"This module is deprecated. Import from panda3d.core and other panda3d.* modules instead.\"
print(\"Warning: pandac.PandaModules is deprecated, import from panda3d.core instead\")\n")
foreach(module ${ALL_INTERROGATE_MODULES})
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/PandaModules.py" "
try:
from panda3d.${module} import *
except ImportError as err:
if \"No module named %s\" not in str(err):
raise
")
endforeach()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/pandac/__init__.py" "")
# Now install ourselves:
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/pandac/__init__.py" "${CMAKE_CURRENT_BINARY_DIR}/pandac/PandaModules.py"
DESTINATION "${PYTHON_LIB_INSTALL_DIR}/pandac")
endif()