@@ -34,6 +34,8 @@ set(WAV_CONVERTER_DIR "WAV2Vircon/"
3434 CACHE PATH "The path to the WAV converter sources." )
3535set (TILED_CONVERTER_DIR "Tiled2Vircon/"
3636 CACHE PATH "The path to the Tiled converter sources." )
37+ set (PNG_JOINER_DIR "PNGJoiner/"
38+ CACHE PATH "The path to the PNG joiner sources." )
3739set (DISASSEMBLER_DIR "Disassembler/"
3840 CACHE PATH "The path to the disassembler sources." )
3941set (ROM_UNPACKER_DIR "RomUnpacker/"
@@ -56,17 +58,6 @@ if(NOT CMAKE_BUILD_TYPE)
5658 set (CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build (Debug or Release)" FORCE )
5759endif ()
5860
59- # Configure some legacy CMake behavior ("policies")
60- if (POLICY CMP0054)
61- cmake_policy (SET CMP0054 NEW ) # Ignore Quoted Arguments
62- endif ()
63- if (POLICY CMP0072)
64- cmake_policy (SET CMP0072 NEW ) # Ignore Legacy GL
65- endif ()
66- if (POLICY CMP0074)
67- cmake_policy (SET CMP0074 NEW ) # Root Variables
68- endif ()
69-
7061# -----------------------------------------------------
7162# DEFINE THE PROJECT
7263# -----------------------------------------------------
@@ -75,8 +66,8 @@ endif()
7566project ("Vircon32" )
7667
7768# Define version
78- set (PROJECT_VERSION_MAJOR 24 )
79- set (PROJECT_VERSION_MINOR 8 )
69+ set (PROJECT_VERSION_MAJOR 25 )
70+ set (PROJECT_VERSION_MINOR 1 )
8071set (PROJECT_VERSION_PATCH 4)
8172
8273# Set names for final executables
@@ -86,14 +77,14 @@ set(ROM_PACKER_BINARY_NAME "packrom")
8677set (PNG_CONVERTER_BINARY_NAME "png2vircon" )
8778set (WAV_CONVERTER_BINARY_NAME "wav2vircon" )
8879set (TILED_CONVERTER_BINARY_NAME "tiled2vircon" )
80+ set (PNG_JOINER_BINARY_NAME "joinpngs" )
8981
9082# Set names for reverse tools executables
9183set (DISASSEMBLER_BINARY_NAME "disassemble" )
9284set (ROM_UNPACKER_BINARY_NAME "unpackrom" )
9385set (PNG_EXTRACTOR_BINARY_NAME "vircon2png" )
9486set (WAV_EXTRACTOR_BINARY_NAME "vircon2wav" )
9587
96-
9788# -----------------------------------------------------
9889# IDENTIFY HOST ENVIRONMENT
9990# -----------------------------------------------------
@@ -120,7 +111,7 @@ endif()
120111
121112# Set compilation flags for C and C++
122113if (MINGW OR TARGET_OS STREQUAL "linux" )
123- set (cxx_flags "${CMAKE_CXX_FLAGS} -std=c++0x - Wall -Wextra -Wno-unused-parameter" )
114+ set (cxx_flags "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter" )
124115 set (c_flags "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter" )
125116elseif (MSVC )
126117 set (cxx_flags "${CMAKE_CXX_FLAGS} /W3 /EHsc /MP /GS /wd4267 /wd4244" )
@@ -208,6 +199,7 @@ set(ALL_INCLUDE_DIRS
208199 ${PNG_CONVERTER_DIR}
209200 ${WAV_CONVERTER_DIR}
210201 ${TILED_CONVERTER_DIR}
202+ ${PNG_JOINER_DIR}
211203 ${ROM_PACKER_DIR}
212204 ${DISASSEMBLER_DIR}
213205 ${ROM_UNPACKER_DIR}
@@ -250,6 +242,11 @@ set(TILED_CONVERTER_LIBS
250242 ${TINYXML2_LIBRARY}
251243 ${CMAKE_DL_LIBS} )
252244
245+ # Libraries to link with the PNG joiner
246+ set (PNG_JOINER_LIBS
247+ ${PNG_LIBRARY}
248+ ${CMAKE_DL_LIBS} )
249+
253250# -----------------------------------------------------
254251# LINKED LIBRARIES FILES (REVERSE TOOLS)
255252# -----------------------------------------------------
@@ -349,6 +346,15 @@ set(TILED_CONVERTER_SRC
349346 ${TILED_CONVERTER_DIR} /Tiled2Vircon.cpp
350347 ${INFRASTRUCTURE_DIR} /FilePaths.cpp)
351348
349+ # Source files to compile for the PNG joiner
350+ set (PNG_JOINER_SRC
351+ ${PNG_JOINER_DIR} /Globals.cpp
352+ ${PNG_JOINER_DIR} /PNGImage.cpp
353+ ${PNG_JOINER_DIR} /PNGJoiner.cpp
354+ ${PNG_JOINER_DIR} /RectangleNode.cpp
355+ ${INFRASTRUCTURE_DIR} /FilePaths.cpp
356+ ${INFRASTRUCTURE_DIR} /StringFunctions.cpp)
357+
352358# -----------------------------------------------------
353359# SOURCE FILES (REVERSE TOOLS)
354360# -----------------------------------------------------
@@ -412,13 +418,18 @@ set_property(TARGET ${WAV_CONVERTER_BINARY_NAME} PROPERTY CXX_STANDARD 11)
412418add_executable (${TILED_CONVERTER_BINARY_NAME} ${TILED_CONVERTER_SRC} )
413419set_property (TARGET ${TILED_CONVERTER_BINARY_NAME} PROPERTY CXX_STANDARD 11 )
414420
421+ # this tool needs C++17 for a portable way to iterate over folders
422+ add_executable (${PNG_JOINER_BINARY_NAME} ${PNG_JOINER_SRC} )
423+ set_property (TARGET ${PNG_JOINER_BINARY_NAME} PROPERTY CXX_STANDARD 17 )
424+
415425# Libraries to link to the C compiler executables
416426target_link_libraries (${C_COMPILER_BINARY_NAME} ${C_COMPILER_LIBS} )
417427target_link_libraries (${ASSEMBLER_BINARY_NAME} ${ASSEMBLER_LIBS} )
418428target_link_libraries (${ROM_PACKER_BINARY_NAME} ${ROM_PACKER_LIBS} )
419429target_link_libraries (${PNG_CONVERTER_BINARY_NAME} ${PNG_CONVERTER_LIBS} )
420430target_link_libraries (${WAV_CONVERTER_BINARY_NAME} ${WAV_CONVERTER_LIBS} )
421431target_link_libraries (${TILED_CONVERTER_BINARY_NAME} ${TILED_CONVERTER_LIBS} )
432+ target_link_libraries (${PNG_JOINER_BINARY_NAME} ${PNG_JOINER_LIBS} )
422433
423434# -----------------------------------------------------
424435# EXECUTABLES (REVERSE TOOLS)
@@ -456,6 +467,7 @@ if(TARGET_OS STREQUAL "windows")
456467 ${PNG_CONVERTER_BINARY_NAME}
457468 ${WAV_CONVERTER_BINARY_NAME}
458469 ${TILED_CONVERTER_BINARY_NAME}
470+ ${PNG_JOINER_BINARY_NAME}
459471 RUNTIME
460472 COMPONENT binaries
461473 DESTINATION DevTools)
@@ -486,6 +498,7 @@ else()
486498 ${PNG_CONVERTER_BINARY_NAME}
487499 ${WAV_CONVERTER_BINARY_NAME}
488500 ${TILED_CONVERTER_BINARY_NAME}
501+ ${PNG_JOINER_BINARY_NAME}
489502 RUNTIME
490503 COMPONENT binaries
491504 DESTINATION ${CMAKE_PROJECT_NAME} /DevTools)
0 commit comments