open_toontown_panda3d/dtool/src/dtoolbase/CMakeLists.txt

119 lines
3.6 KiB
CMake

configure_file(pandaVersion.h.in pandaVersion.h)
configure_file(checkPandaVersion.h.in checkPandaVersion.h)
configure_file(checkPandaVersion.cxx.in checkPandaVersion.cxx)
if(CMAKE_CXX_STANDARD GREATER 16)
# This serves as a reminder to update checkPandaVersion.h.in when we upgrade
# to C++17, which supports inline variables - a cleaner way of depending on
# the Panda version symbol from a header than what we're currently doing.
message(FATAL_ERROR "Developer notice: Update checkPandaVersion.h.in for C++17!")
endif()
set(P3DTOOLBASE_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/checkPandaVersion.h
${CMAKE_CURRENT_BINARY_DIR}/pandaVersion.h
addHash.I addHash.h
atomicAdjust.h
atomicAdjustDummyImpl.h atomicAdjustDummyImpl.I
atomicAdjustGccImpl.h atomicAdjustGccImpl.I
atomicAdjustI386Impl.h atomicAdjustI386Impl.I
atomicAdjustPosixImpl.h atomicAdjustPosixImpl.I
atomicAdjustWin32Impl.h atomicAdjustWin32Impl.I
cmath.I cmath.h
deletedBufferChain.h deletedBufferChain.I
deletedChain.h deletedChain.I
dtoolbase.h dtoolbase_cc.h dtoolsymbols.h
dtool_platform.h
extension.h
fakestringstream.h
indent.I indent.h
memoryBase.h
memoryHook.h memoryHook.I
mutexImpl.h
mutexDummyImpl.h mutexDummyImpl.I
mutexPosixImpl.h mutexPosixImpl.I
mutexWin32Impl.h mutexWin32Impl.I
mutexSpinlockImpl.h mutexSpinlockImpl.I
nearly_zero.h
neverFreeMemory.h neverFreeMemory.I
numeric_types.h
pdtoa.h
pstrtod.h
register_type.I register_type.h
selectThreadImpl.h
stl_compares.I stl_compares.h
typeHandle.I typeHandle.h
typeRegistry.I typeRegistry.h
typeRegistryNode.I typeRegistryNode.h
typedObject.I typedObject.h
pallocator.T pallocator.h
patomic.h patomic.I
pdeque.h plist.h pmap.h pset.h
pvector.h epvector.h
lookup3.h
version.h
)
set(P3DTOOLBASE_SOURCES
${CMAKE_CURRENT_BINARY_DIR}/checkPandaVersion.cxx
addHash.cxx
atomicAdjustDummyImpl.cxx
atomicAdjustI386Impl.cxx
atomicAdjustPosixImpl.cxx
atomicAdjustWin32Impl.cxx
deletedBufferChain.cxx
dtoolbase.cxx
indent.cxx
lookup3.c
memoryBase.cxx
memoryHook.cxx
mutexDummyImpl.cxx
mutexPosixImpl.cxx
mutexWin32Impl.cxx
mutexSpinlockImpl.cxx
neverFreeMemory.cxx
patomic.cxx
pdtoa.cxx
pstrtod.cxx
register_type.cxx
typeHandle.cxx
typeRegistry.cxx typeRegistryNode.cxx
typedObject.cxx
)
set(P3DTOOLBASE_IGATEEXT
typeHandle_ext.cxx
typeHandle_ext.h
)
set_source_files_properties(indent.cxx PROPERTIES SKIP_UNITY_BUILD_INCLUSION YES)
composite_sources(p3dtoolbase P3DTOOLBASE_SOURCES)
add_component_library(p3dtoolbase NOINIT SYMBOL BUILDING_DTOOL_DTOOLBASE
${P3DTOOLBASE_HEADERS} ${P3DTOOLBASE_SOURCES})
# Help other libraries find the autogenerated headers
target_include_directories(p3dtoolbase PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<BUILD_INTERFACE:${PANDA_OUTPUT_DIR}/include>)
target_link_libraries(p3dtoolbase PKG::EIGEN PKG::THREADS)
target_interrogate(p3dtoolbase ${P3DTOOLBASE_SOURCES} EXTENSIONS ${P3DTOOLBASE_IGATEEXT})
if(HAVE_MIMALLOC AND USE_MEMORY_MIMALLOC)
target_link_libraries(p3dtoolbase PKG::MIMALLOC)
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang)$")
# Do not re-export symbols from these libraries.
target_link_options(p3dtoolbase PRIVATE "LINKER:--exclude-libs,libmimalloc.a")
endif()
endif()
if(NOT BUILD_METALIBS)
install(TARGETS p3dtoolbase
EXPORT Core COMPONENT Core
DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/panda3d
ARCHIVE COMPONENT CoreDevel)
endif()
install(FILES ${P3DTOOLBASE_HEADERS} COMPONENT CoreDevel DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/panda3d)