- change script for installing BMap like LibCmo although no one will use it. - move package install command into respective cmake script. - change BMap project layout
154 lines
4.1 KiB
CMake
154 lines
4.1 KiB
CMake
# Configure version file
|
|
configure_file(
|
|
${CMAKE_CURRENT_LIST_DIR}/LibCmo/VTVersion.hpp.in
|
|
${CMAKE_CURRENT_LIST_DIR}/LibCmo/VTVersion.hpp
|
|
@ONLY
|
|
)
|
|
|
|
# Create static library
|
|
add_library(LibCmo STATIC "")
|
|
# Setup static library sources
|
|
target_sources(LibCmo
|
|
PRIVATE
|
|
# NeMo Shared
|
|
LibCmo/VTEncoding.cpp
|
|
LibCmo/VTImage.cpp
|
|
# CK2
|
|
LibCmo/CK2/CKBitmapData.cpp
|
|
LibCmo/CK2/CKContext.cpp
|
|
LibCmo/CK2/CKFileOthers.cpp
|
|
LibCmo/CK2/CKFileReader.cpp
|
|
LibCmo/CK2/CKFileWriter.cpp
|
|
LibCmo/CK2/CKGlobals.cpp
|
|
LibCmo/CK2/CKStateChunkOthers.cpp
|
|
LibCmo/CK2/CKStateChunkReader.cpp
|
|
LibCmo/CK2/CKStateChunkWriter.cpp
|
|
# CK2 Data Handler
|
|
LibCmo/CK2/DataHandlers/CKBitmapHandler.cpp
|
|
# CK2 Manager
|
|
LibCmo/CK2/MgrImpls/CKBaseManager.cpp
|
|
LibCmo/CK2/MgrImpls/CKObjectManager.cpp
|
|
LibCmo/CK2/MgrImpls/CKPathManager.cpp
|
|
# CK2 Object
|
|
LibCmo/CK2/ObjImpls/CK3dEntity.cpp
|
|
LibCmo/CK2/ObjImpls/CKBeObject.cpp
|
|
LibCmo/CK2/ObjImpls/CKGroup.cpp
|
|
LibCmo/CK2/ObjImpls/CKMaterial.cpp
|
|
LibCmo/CK2/ObjImpls/CKMesh.cpp
|
|
LibCmo/CK2/ObjImpls/CKObject.cpp
|
|
LibCmo/CK2/ObjImpls/CKTexture.cpp
|
|
LibCmo/CK2/ObjImpls/CKLight.cpp
|
|
LibCmo/CK2/ObjImpls/CKTargetLight.cpp
|
|
LibCmo/CK2/ObjImpls/CKCamera.cpp
|
|
LibCmo/CK2/ObjImpls/CKTargetCamera.cpp
|
|
# VxMath
|
|
LibCmo/VxMath/VxMemoryMappedFile.cpp
|
|
LibCmo/VxMath/VxTypes.cpp
|
|
LibCmo/VxMath/VxMath.cpp
|
|
# X Container
|
|
LibCmo/XContainer/XTypes.cpp
|
|
)
|
|
# Setup static library headers
|
|
target_sources(LibCmo
|
|
PUBLIC
|
|
FILE_SET HEADERS
|
|
FILES
|
|
# NeMo Shared
|
|
VTAll.hpp
|
|
LibCmo/VTVersion.hpp
|
|
LibCmo/VTInternal.hpp
|
|
LibCmo/VTEncoding.hpp
|
|
LibCmo/VTUtils.hpp
|
|
# CK2
|
|
LibCmo/CK2/CKDefines.hpp
|
|
LibCmo/CK2/CKEnums.hpp
|
|
LibCmo/CK2/CKGlobals.hpp
|
|
LibCmo/CK2/CKIdentifiers.hpp
|
|
LibCmo/CK2/CKTypes.hpp
|
|
LibCmo/CK2/CKBitmapData.hpp
|
|
LibCmo/CK2/CKContext.hpp
|
|
LibCmo/CK2/CKFile.hpp
|
|
LibCmo/CK2/CKStateChunk.hpp
|
|
# CK2 Data Handler
|
|
LibCmo/CK2/DataHandlers/CKBitmapHandler.hpp
|
|
# CK2 Manager
|
|
LibCmo/CK2/MgrImpls/CKBaseManager.hpp
|
|
LibCmo/CK2/MgrImpls/CKObjectManager.hpp
|
|
LibCmo/CK2/MgrImpls/CKPathManager.hpp
|
|
# CK2 Object
|
|
LibCmo/CK2/ObjImpls/CK3dEntity.hpp
|
|
LibCmo/CK2/ObjImpls/CKBeObject.hpp
|
|
LibCmo/CK2/ObjImpls/CKGroup.hpp
|
|
LibCmo/CK2/ObjImpls/CKMaterial.hpp
|
|
LibCmo/CK2/ObjImpls/CKMesh.hpp
|
|
LibCmo/CK2/ObjImpls/CKObject.hpp
|
|
LibCmo/CK2/ObjImpls/CKTexture.hpp
|
|
LibCmo/CK2/ObjImpls/CK3dObject.hpp
|
|
LibCmo/CK2/ObjImpls/CKRenderObject.hpp
|
|
LibCmo/CK2/ObjImpls/CKSceneObject.hpp
|
|
LibCmo/CK2/ObjImpls/CKLight.hpp
|
|
LibCmo/CK2/ObjImpls/CKTargetLight.hpp
|
|
LibCmo/CK2/ObjImpls/CKCamera.hpp
|
|
LibCmo/CK2/ObjImpls/CKTargetCamera.hpp
|
|
# VxMath
|
|
LibCmo/VxMath/VxTypes.hpp
|
|
LibCmo/VxMath/VxMath.hpp
|
|
LibCmo/VxMath/VxEnums.hpp
|
|
LibCmo/VxMath/VxMemoryMappedFile.hpp
|
|
# X Container
|
|
LibCmo/XContainer/XTypes.hpp
|
|
)
|
|
# Setup include and linked library infomation
|
|
target_include_directories(LibCmo
|
|
PUBLIC
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
|
)
|
|
target_link_libraries(LibCmo
|
|
PUBLIC
|
|
YYCC::YYCCommonplace
|
|
PRIVATE
|
|
ZLIB::ZLIB
|
|
STB::STB
|
|
)
|
|
target_compile_definitions(LibCmo
|
|
# Expose LibCmo build type
|
|
PUBLIC
|
|
"$<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>"
|
|
"$<$<CONFIG:Release,RelWithDebInfo,MinSize>:LIBCMO_BUILD_RELEASE>"
|
|
)
|
|
|
|
# Install binary and headers
|
|
install(TARGETS LibCmo
|
|
EXPORT LibCmoTargets
|
|
LIBRARY DESTINATION ${NEMO_INSTALL_LIB_PATH}
|
|
ARCHIVE DESTINATION ${NEMO_INSTALL_LIB_PATH}
|
|
INCLUDES DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
|
|
FILE_SET HEADERS DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
|
|
)
|
|
# Install target
|
|
install(EXPORT LibCmoTargets
|
|
FILE LibCmoTargets.cmake
|
|
NAMESPACE NeMo::
|
|
DESTINATION ${NEMO_INSTALL_LIB_PATH}/cmake/LibCmo
|
|
)
|
|
# Package configuration file
|
|
write_basic_package_version_file(
|
|
LibCmoConfigVersion.cmake
|
|
VERSION ${PACKAGE_VERSION}
|
|
COMPATIBILITY SameMinorVersion
|
|
)
|
|
configure_package_config_file(
|
|
${CMAKE_CURRENT_LIST_DIR}/../CMake/LibCmoConfig.cmake.in
|
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfig.cmake"
|
|
INSTALL_DESTINATION ${NEMO_INSTALL_LIB_PATH}/cmake/LibCmo
|
|
)
|
|
# Copy package files to install destination
|
|
install(
|
|
FILES
|
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfig.cmake"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfigVersion.cmake"
|
|
DESTINATION
|
|
${NEMO_INSTALL_LIB_PATH}/cmake/LibCmo
|
|
)
|