chore: update build script
- change project layout for better understanding. - update build script for more close to standard cmake way.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Configure version file
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_LIST_DIR}/../CMake/VTVersion.hpp.in
|
||||
${CMAKE_CURRENT_LIST_DIR}/VTVersion.hpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/LibCmo/VTVersion.hpp.in
|
||||
${CMAKE_CURRENT_LIST_DIR}/LibCmo/VTVersion.hpp
|
||||
@ONLY
|
||||
)
|
||||
|
||||
@@ -10,93 +10,93 @@ add_library(LibCmo STATIC "")
|
||||
# Setup static library sources
|
||||
target_sources(LibCmo
|
||||
PRIVATE
|
||||
# Assistant source files
|
||||
VTEncoding.cpp
|
||||
VTImage.cpp
|
||||
# NeMo Shared
|
||||
LibCmo/VTEncoding.cpp
|
||||
LibCmo/VTImage.cpp
|
||||
# CK2
|
||||
CK2/CKBitmapData.cpp
|
||||
CK2/CKContext.cpp
|
||||
CK2/CKFileOthers.cpp
|
||||
CK2/CKFileReader.cpp
|
||||
CK2/CKFileWriter.cpp
|
||||
CK2/CKGlobals.cpp
|
||||
CK2/CKStateChunkOthers.cpp
|
||||
CK2/CKStateChunkReader.cpp
|
||||
CK2/CKStateChunkWriter.cpp
|
||||
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
|
||||
CK2/DataHandlers/CKBitmapHandler.cpp
|
||||
LibCmo/CK2/DataHandlers/CKBitmapHandler.cpp
|
||||
# CK2 Manager
|
||||
CK2/MgrImpls/CKBaseManager.cpp
|
||||
CK2/MgrImpls/CKObjectManager.cpp
|
||||
CK2/MgrImpls/CKPathManager.cpp
|
||||
LibCmo/CK2/MgrImpls/CKBaseManager.cpp
|
||||
LibCmo/CK2/MgrImpls/CKObjectManager.cpp
|
||||
LibCmo/CK2/MgrImpls/CKPathManager.cpp
|
||||
# CK2 Object
|
||||
CK2/ObjImpls/CK3dEntity.cpp
|
||||
CK2/ObjImpls/CKBeObject.cpp
|
||||
CK2/ObjImpls/CKGroup.cpp
|
||||
CK2/ObjImpls/CKMaterial.cpp
|
||||
CK2/ObjImpls/CKMesh.cpp
|
||||
CK2/ObjImpls/CKObject.cpp
|
||||
CK2/ObjImpls/CKTexture.cpp
|
||||
CK2/ObjImpls/CKLight.cpp
|
||||
CK2/ObjImpls/CKTargetLight.cpp
|
||||
CK2/ObjImpls/CKCamera.cpp
|
||||
CK2/ObjImpls/CKTargetCamera.cpp
|
||||
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
|
||||
VxMath/VxMemoryMappedFile.cpp
|
||||
VxMath/VxTypes.cpp
|
||||
VxMath/VxMath.cpp
|
||||
LibCmo/VxMath/VxMemoryMappedFile.cpp
|
||||
LibCmo/VxMath/VxTypes.cpp
|
||||
LibCmo/VxMath/VxMath.cpp
|
||||
# X Container
|
||||
XContainer/XTypes.cpp
|
||||
LibCmo/XContainer/XTypes.cpp
|
||||
)
|
||||
# Setup static library headers
|
||||
target_sources(LibCmo
|
||||
PUBLIC
|
||||
FILE_SET HEADERS
|
||||
FILES
|
||||
# Asststant header files
|
||||
VTVersion.hpp
|
||||
VTInternal.hpp
|
||||
VTEncoding.hpp
|
||||
VTUtils.hpp
|
||||
# NeMo Shared
|
||||
VTAll.hpp
|
||||
LibCmo/VTVersion.hpp
|
||||
LibCmo/VTInternal.hpp
|
||||
LibCmo/VTEncoding.hpp
|
||||
LibCmo/VTUtils.hpp
|
||||
# CK2
|
||||
CK2/CKDefines.hpp
|
||||
CK2/CKEnums.hpp
|
||||
CK2/CKGlobals.hpp
|
||||
CK2/CKIdentifiers.hpp
|
||||
CK2/CKTypes.hpp
|
||||
CK2/CKBitmapData.hpp
|
||||
CK2/CKContext.hpp
|
||||
CK2/CKFile.hpp
|
||||
CK2/CKStateChunk.hpp
|
||||
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
|
||||
CK2/DataHandlers/CKBitmapHandler.hpp
|
||||
LibCmo/CK2/DataHandlers/CKBitmapHandler.hpp
|
||||
# CK2 Manager
|
||||
CK2/MgrImpls/CKBaseManager.hpp
|
||||
CK2/MgrImpls/CKObjectManager.hpp
|
||||
CK2/MgrImpls/CKPathManager.hpp
|
||||
LibCmo/CK2/MgrImpls/CKBaseManager.hpp
|
||||
LibCmo/CK2/MgrImpls/CKObjectManager.hpp
|
||||
LibCmo/CK2/MgrImpls/CKPathManager.hpp
|
||||
# CK2 Object
|
||||
CK2/ObjImpls/CK3dEntity.hpp
|
||||
CK2/ObjImpls/CKBeObject.hpp
|
||||
CK2/ObjImpls/CKGroup.hpp
|
||||
CK2/ObjImpls/CKMaterial.hpp
|
||||
CK2/ObjImpls/CKMesh.hpp
|
||||
CK2/ObjImpls/CKObject.hpp
|
||||
CK2/ObjImpls/CKTexture.hpp
|
||||
CK2/ObjImpls/CK3dObject.hpp
|
||||
CK2/ObjImpls/CKRenderObject.hpp
|
||||
CK2/ObjImpls/CKSceneObject.hpp
|
||||
CK2/ObjImpls/CKLight.hpp
|
||||
CK2/ObjImpls/CKTargetLight.hpp
|
||||
CK2/ObjImpls/CKCamera.hpp
|
||||
CK2/ObjImpls/CKTargetCamera.hpp
|
||||
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
|
||||
VxMath/VxTypes.hpp
|
||||
VxMath/VxMath.hpp
|
||||
VxMath/VxEnums.hpp
|
||||
VxMath/VxMemoryMappedFile.hpp
|
||||
LibCmo/VxMath/VxTypes.hpp
|
||||
LibCmo/VxMath/VxMath.hpp
|
||||
LibCmo/VxMath/VxEnums.hpp
|
||||
LibCmo/VxMath/VxMemoryMappedFile.hpp
|
||||
# X Container
|
||||
XContainer/XTypes.hpp
|
||||
LibCmo/XContainer/XTypes.hpp
|
||||
)
|
||||
# Setup include and linked library infomation
|
||||
target_include_directories(LibCmo
|
||||
@@ -109,32 +109,13 @@ PUBLIC
|
||||
YYCC::YYCCommonplace
|
||||
PRIVATE
|
||||
ZLIB::ZLIB
|
||||
stb::stb-image
|
||||
)
|
||||
if (NOT WIN32)
|
||||
target_link_libraries(LibCmo PRIVATE Iconv::Iconv)
|
||||
endif ()
|
||||
# Setup C++ standard
|
||||
set_target_properties(LibCmo
|
||||
PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED 20
|
||||
CXX_EXTENSION OFF
|
||||
STB::STB
|
||||
)
|
||||
target_compile_definitions(LibCmo
|
||||
# Expose LibCmo build type
|
||||
PUBLIC
|
||||
"$<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>"
|
||||
"$<$<CONFIG:Release,RelWithDebInfo,MinSize>:LIBCMO_BUILD_RELEASE>"
|
||||
# Unicode charset for private using
|
||||
PRIVATE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:UNICODE>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:_UNICODE>
|
||||
)
|
||||
target_compile_options(LibCmo
|
||||
# Order build as UTF-8 in MSVC
|
||||
PRIVATE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/utf-8>
|
||||
)
|
||||
|
||||
# Install binary and headers
|
||||
|
||||
6
LibCmo/LibCmo/VTVersion.hpp.in
Normal file
6
LibCmo/LibCmo/VTVersion.hpp.in
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#define LIBCMO_VER_MAJOR @PROJECT_VERSION_MAJOR@
|
||||
#define LIBCMO_VER_MINOR @PROJECT_VERSION_MINOR@
|
||||
#define LIBCMO_VER_PATCH @PROJECT_VERSION_PATCH@
|
||||
#define LIBCMO_VER_STR "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@"
|
||||
@@ -13,33 +13,33 @@
|
||||
*/
|
||||
|
||||
// Include internal header
|
||||
#include "VTInternal.hpp"
|
||||
#include "LibCmo/VTInternal.hpp"
|
||||
|
||||
// CK2 Misc
|
||||
#include "CK2/CKContext.hpp"
|
||||
#include "CK2/CKStateChunk.hpp"
|
||||
#include "CK2/CKFile.hpp"
|
||||
#include "LibCmo/CK2/CKContext.hpp"
|
||||
#include "LibCmo/CK2/CKStateChunk.hpp"
|
||||
#include "LibCmo/CK2/CKFile.hpp"
|
||||
|
||||
// CK2 Data handlers
|
||||
#include "CK2/DataHandlers/CKBitmapHandler.hpp"
|
||||
#include "LibCmo/CK2/DataHandlers/CKBitmapHandler.hpp"
|
||||
|
||||
// CK2 Objects
|
||||
#include "CK2/ObjImpls/CKObject.hpp"
|
||||
#include "CK2/ObjImpls/CKSceneObject.hpp"
|
||||
#include "CK2/ObjImpls/CKBeObject.hpp"
|
||||
#include "CK2/ObjImpls/CKGroup.hpp"
|
||||
#include "CK2/ObjImpls/CKRenderObject.hpp"
|
||||
#include "CK2/ObjImpls/CK3dEntity.hpp"
|
||||
#include "CK2/ObjImpls/CK3dObject.hpp"
|
||||
#include "CK2/ObjImpls/CKTexture.hpp"
|
||||
#include "CK2/ObjImpls/CKMaterial.hpp"
|
||||
#include "CK2/ObjImpls/CKMesh.hpp"
|
||||
#include "CK2/ObjImpls/CKLight.hpp"
|
||||
#include "CK2/ObjImpls/CKTargetLight.hpp"
|
||||
#include "CK2/ObjImpls/CKCamera.hpp"
|
||||
#include "CK2/ObjImpls/CKTargetCamera.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKObject.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKSceneObject.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKBeObject.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKGroup.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKRenderObject.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CK3dEntity.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CK3dObject.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKTexture.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKMaterial.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKMesh.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKLight.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKTargetLight.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKCamera.hpp"
|
||||
#include "LibCmo/CK2/ObjImpls/CKTargetCamera.hpp"
|
||||
|
||||
// CK2 Managers
|
||||
#include "CK2/MgrImpls/CKBaseManager.hpp"
|
||||
#include "CK2/MgrImpls/CKObjectManager.hpp"
|
||||
#include "CK2/MgrImpls/CKPathManager.hpp"
|
||||
#include "LibCmo/CK2/MgrImpls/CKBaseManager.hpp"
|
||||
#include "LibCmo/CK2/MgrImpls/CKObjectManager.hpp"
|
||||
#include "LibCmo/CK2/MgrImpls/CKPathManager.hpp"
|
||||
|
||||
Reference in New Issue
Block a user