| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- # PRC Config settings
- set(PRC_DEFAULT_DIR_ABSOLUTE "" CACHE STRING
- "Specify the PRC_DEFAULT_DIR as an absolute path.")
- if(NOT PRC_DEFAULT_DIR_ABSOLUTE)
- set(PRC_DEFAULT_DIR "etc" CACHE STRING
- "Panda uses prc files for runtime configuration. Panda will search the
- default .prc directory if the PRC_PATH and PRC_DIR environment variables
- are not defined.")
- else()
- set(PRC_DEFAULT_DIR "" CACHE STRING
- "Panda uses prc files for runtime configuration. Panda will search the
- default .prc directory if the PRC_PATH and PRC_DIR environment variables
- are not defined.")
- endif()
- if(PRC_DEFAULT_DIR AND PRC_DEFAULT_DIR_ABSOLUTE)
- message("Using PRC_DEFAULT_DIR_ABSOLUTE instead of PRC_DEFAULT_DIR.")
- endif()
- set(PRC_DIR_ENVVARS "PANDA_PRC_DIR" CACHE STRING "")
- set(PRC_PATH_ENVVARS "PANDA_PRC_PATH" CACHE STRING "")
- set(PRC_PATH2_ENVVARS "" CACHE STRING "")
- set(PRC_PATTERNS "*.prc" CACHE STRING "")
- set(PRC_ENCRYPTED_PATTERNS "*.prc.pe" CACHE STRING "")
- set(PRC_ENCRYPTION_KEY "" CACHE STRING "")
- set(PRC_EXECUTABLE_PATTERNS "" CACHE STRING "")
- set(PRC_EXECUTABLE_ARGS_ENVVAR "PANDA_PRC_XARGS" CACHE STRING "")
- set(PRC_PUBLIC_KEYS_FILENAME "" CACHE STRING "")
- set(PRC_RESPECT_TRUST_LEVEL CACHE STRING "")
- set(PRC_DCONFIG_TRUST_LEVEL 0 CACHE STRING
- "The trust level value for any legacy (DConfig) variables.")
- set(PRC_INC_TRUST_LEVEL 0 CACHE STRING
- "The amount by which we globally increment the trust level.")
- mark_as_advanced(PRC_DEFAULT_DIR PRC_DEFAULT_DIR_ABSOLUTE PRC_DIR_ENVVARS
- PRC_PATH_ENVVARS PRC_PATH2_ENVVARS PRC_PATTERNS PRC_ENCRYPTED_PATTERNS
- PRC_ENCRYPTION_KEY PRC_EXECUTABLE_PATTERNS PRC_EXECUTABLE_ARGS_ENVVAR
- PRC_PUBLIC_KEYS_FILENAME PRC_RESPECT_TRUST_LEVEL
- PRC_DCONFIG_TRUST_LEVEL PRC_INC_TRUST_LEVEL)
- # PRC special values for config headers
- if(PRC_DEFAULT_DIR_ABSOLUTE)
- set(DEFAULT_PRC_DIR ${PRC_ABSOLUTE_DIR})
- else()
- set(DEFAULT_PRC_DIR "${CMAKE_INSTALL_PREFIX}/panda/${PRC_DEFAULT_DIR}")
- endif()
- ### Configure interrogate ###
- message(STATUS "") # simple line break
- if(HAVE_PYTHON AND HAVE_OPENSSL)
- option(USE_INTERROGATE "If on, Panda3D will generate python interfaces" ON)
- if(USE_INTERROGATE)
- set(HAVE_INTERROGATE TRUE)
- endif()
- else()
- unset(USE_INTERROGATE CACHE)
- endif()
- if(HAVE_INTERROGATE)
- message(STATUS "Compilation will generate Python interfaces.")
- else()
- message(STATUS "Configuring Panda without Python interfaces.")
- endif()
- ### Configure threading support ###
- find_package(Threads)
- if(THREADS_FOUND)
- # Add basic use flag for threading
- option(BUILD_THREADS
- "If on, compile Panda3D with threading support.
- Building in support for threading will enable Panda to take
- advantage of multiple CPU's if you have them (and if the OS
- supports kernel threads running on different CPU's), but it will
- slightly slow down Panda for the single CPU case." ON)
- if(BUILD_THREADS)
- set(HAVE_THREADS TRUE)
- else()
- unset(BUILD_SIMPLE_THREADS CACHE)
- unset(BUILD_OS_SIMPLE_THREADS CACHE)
- endif()
- else()
- unset(BUILD_THREADS CACHE)
- endif()
- # Configure debug threads
- # Add advanced threading configuration
- if(HAVE_THREADS)
- if(CMAKE_BUILD_TYPE MATCHES "Debug")
- option(BUILD_DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" ON)
- else()
- option(BUILD_DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" OFF)
- endif()
- if(BUILD_DEBUG_THREADS)
- set(DEBUG_THREADS TRUE)
- endif()
- set(HAVE_POSIX_THREADS ${CMAKE_USE_PTHREADS_INIT})
- if(HAVE_POSIX_THREADS)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pthread")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -pthread")
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -pthread")
- set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -pthread")
- endif()
- option(BUILD_SIMPLE_THREADS
- "If on, compile with simulated threads. Threads, by default, use
- OS-provided threading constructs, which usually allows for full
- multithreading support (i.e. the program can use multiple CPU's).
- On the other hand, compiling in this full OS-provided support can
- impose some substantial runtime overhead, making the application
- run slower on a single-CPU machine. This settings avoid the overhead,
- but still gain some of the basic functionality of threads." OFF)
- if(BUILD_SIMPLE_THREADS)
- message(STATUS "Compilation will include simulated threading support.")
- option(BUILD_OS_SIMPLE_THREADS
- "If on, OS threading constructs will be used to perform context switches.
- A mutex is used to ensure that only one thread runs at a time, so the
- normal SIMPLE_THREADS optimizations still apply, and the normal
- SIMPLE_THREADS scheduler is used to switch between threads (instead
- of the OS scheduler). This may be more portable and more reliable,
- but it is a hybrid between user-space threads and os-provided threads." ON)
- set(SIMPLE_THREADS TRUE)
- if(BUILD_OS_SIMPLE_THREADS)
- set(OS_SIMPLE_THREADS TRUE)
- endif()
- else()
- unset(BUILD_OS_SIMPLE_THREADS CACHE)
- option(BUILD_PIPELINING "If on, compile with pipelined rendering." ON)
- if(BUILD_PIPELINING)
- message(STATUS "Compilation will include full, pipelined threading support.")
- else()
- message(STATUS "Compilation will include nonpipelined threading support.")
- endif()
- endif()
- else()
- message(STATUS "Configuring Panda without threading support.")
- endif()
- ### Configure pipelining ###
- if(NOT DEFINED BUILD_PIPELINING)
- option(BUILD_PIPELINING "If on, compile with pipelined rendering." ON)
- endif()
- if(BUILD_PIPELINING)
- set(DO_PIPELINING TRUE)
- endif()
- ### Configure OS X options ###
- if(APPLE)
- option(BUILD_UNIVERSIAL_BINARIES "If on, compiling will create universal OS X binaries." ON)
- if(BUILD_UNIVERSAL_BINARIES)
- message(STATUS "Compilation will create universal binaries.")
- set(UNIVERSAL_BINARIES TRUE)
- else()
- message(STATUS "Compilation will not create universal binaries.")
- endif()
- endif()
- message(STATUS "")
- message(STATUS "See dtool_config.h for more details about the specified configuration.\n")
- ### Miscellaneous configuration
- if(CMAKE_BUILD_TYPE MATCHES "MinSizeRel")
- unset(BUILD_WITH_DEFAULT_FONT CACHE)
- option(BUILD_WITH_DEFAULT_FONT
- "If on, compiles in a default font, so that every TextNode will always
- have a font available without requiring the user to specify one.
- When turned off, the generated library will save a few kilobytes." OFF)
- else()
- option(BUILD_WITH_DEFAULT_FONT
- "If on, compiles in a default font, so that every TextNode will always
- have a font available without requiring the user to specify one.
- When turned off, the generated library will save a few kilobytes." ON)
- endif()
- if(BUILD_WITH_DEFAULT_FONT)
- set(COMPILE_IN_DEFAULT_FONT TRUE)
- endif()
- option(BUILD_PREFER_STDFLOAT
- "Define this true to compile a special version of Panda to use a
- 'double' floating-precision type for most internal values, such as
- positions and transforms, instead of the standard single-precision
- 'float' type. This does not affect the default numeric type of
- vertices, which is controlled by the runtime config variable
- vertices-float64." OFF)
- if(BUILD_PREFER_STDFLOAT)
- set(STDFLOAT_DOUBLE TRUE)
- endif()
- #XXX note from rdb: I've moved the automatically-configured
- # compiler settings to LocalSetup.cmake, which is also where
- # dtool_config.h.cmake is now being invoked.
- # LocalSetup.cmake is included in dtool/CMakeLists.txt, which
- # is OK since the variables in there don't have to be used
- # outside of dtool_config.h.cmake.
- if(WIN32)
- set(DEFAULT_PATHSEP ";")
- else()
- set(DEFAULT_PATHSEP ":")
- endif()
|