Skip to content

Commit 8d31afe

Browse files
committed
CMakeLists cleanup, dependency management
- dependencies should now be loaded via CPM and statically linked. - removed unused dependencies
1 parent 7b784da commit 8d31afe

10 files changed

Lines changed: 44 additions & 72328 deletions

File tree

CMakeLists.txt

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,12 @@
1-
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
2-
PROJECT(DW1ModelConverter)
3-
4-
SET(CMAKE_CXX_STANDARD 20)
1+
cmake_minimum_required(VERSION 3.12)
2+
project(DW1ModelConverter)
53

64
include(cmake/CPM.cmake)
75

86
# --- Libraries ---
9-
# boost
10-
#FIND_PACKAGE(Boost 1.75 REQUIRED)
11-
#INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
12-
13-
# libpng
14-
FIND_PACKAGE(PNG REQUIRED)
15-
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
16-
17-
# tinyxml2
18-
ADD_SUBDIRECTORY("libs/tinyxml2")
197

20-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dcimg_use_png")
21-
INCLUDE_DIRECTORIES( "libs" )
8+
# disable deprecation warning for libraries
9+
set(CMAKE_WARN_DEPRECATED FALSE CACHE BOOL "" FORCE)
2210

2311
#tinygltf
2412
set(TINYGLTF_HEADER_ONLY ON CACHE INTERNAL "" FORCE)
@@ -30,25 +18,45 @@ CPMAddPackage(
3018
GITHUB_REPOSITORY "syoyo/tinygltf"
3119
)
3220

33-
# --- Configuration ---
21+
# zlib
22+
set(SKIP_INSTALL_ALL ON)
23+
24+
CPMAddPackage(
25+
NAME zlib
26+
VERSION 1.3
27+
GITHUB_REPOSITORY "madler/zlib"
28+
)
29+
30+
# libpng
31+
CPMAddPackage(
32+
NAME libpng
33+
VERSION 1.6.40
34+
GITHUB_REPOSITORY "glennrp/libpng"
35+
)
36+
37+
# cimg
38+
CPMAddPackage(
39+
NAME cimg
40+
VERSION .3.3.0
41+
GITHUB_REPOSITORY "GreycLab/CImg"
42+
)
3443

35-
add_compile_definitions(cimg_display=0)
44+
# re-enable deprecation warning
45+
set(CMAKE_WARN_DEPRECATED TRUE CACHE BOOL "" FORCE)
3646

37-
# --- Tools ---
38-
SET(SOURCE_FILES ${SOURCE_FILES} "src/main.cpp" "src/TIM.cpp" "src/Animation.cpp" "src/CLUTMap.cpp"
47+
# --- Target ---
48+
set(SOURCE_FILES ${SOURCE_FILES} "src/main.cpp" "src/TIM.cpp" "src/Animation.cpp" "src/CLUTMap.cpp"
3949
"src/Model.cpp" "src/GLTF.cpp")
4050

41-
ADD_EXECUTABLE(DW1ModelConverter ${SOURCE_FILES})
42-
TARGET_LINK_LIBRARIES(DW1ModelConverter PUBLIC tinyxml2 PNG::PNG tinygltf)
51+
add_executable(DW1ModelConverter ${SOURCE_FILES})
52+
53+
set_target_properties(DW1ModelConverter PROPERTIES CXX_STANDARD 20)
54+
target_include_directories(DW1ModelConverter PRIVATE ${cimg_SOURCE_DIR})
55+
target_link_libraries(DW1ModelConverter PRIVATE png_static tinygltf)
56+
57+
target_compile_definitions(DW1ModelConverter PRIVATE cimg_display=0)
58+
target_compile_definitions(DW1ModelConverter PRIVATE cimg_use_png)
4359

44-
# Copy .dll dependencies. Extremely dirty!
45-
if(WIN32)
46-
FIND_FILE(PNG_FILE "bin/libpng16d.dll")
47-
FIND_FILE(ZLIB_FILE "bin/zlib.dll" PATHS "${ZLIB_INCLUDE_DIR}/..")
60+
message("${PROJECT_SOURCE_DIR}")
4861

49-
ADD_CUSTOM_COMMAND(TARGET DW1ModelConverter POST_BUILD
50-
COMMAND ${CMAKE_COMMAND} -E copy ${PNG_FILE} $<TARGET_FILE_DIR:DW1ModelConverter>
51-
COMMAND ${CMAKE_COMMAND} -E copy ${ZLIB_FILE} $<TARGET_FILE_DIR:DW1ModelConverter>
52-
COMMAND_EXPAND_LISTS
53-
)
54-
endif()
62+
install(TARGETS DW1ModelConverter)# RUNTIME DESTINATION ${PROJECT_SOURCE_DIR}/install)

0 commit comments

Comments
 (0)