diff --git a/.gitignore b/.gitignore index eca47f8..5bb645a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ # Precompiled Headers *.gch *.pch +src/config.h # Libraries *.lib @@ -41,7 +42,7 @@ *.su *.idb *.pdb -testfiles/ +samples/ # Kernel Module Compile Results *.mod* diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ace9e99 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +# CMakeLists.txt + +# Written by JackCarterSmith, 2020 +# This code is released under the RSE license. + +cmake_minimum_required(VERSION 3.1) +cmake_policy(VERSION 3.1) + +# define project +project(rse-texture VERSION 1.0.1 DESCRIPTION "RogueSquadron Extractor - Texture" LANGUAGES C) +set(CMAKE_BUILD_TYPE Release) +set(RSE_TEX_NAME RSE_Texture-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/config.h @ONLY) + +include(CheckIncludeFile) +include(CheckCSourceCompiles) + +# needed packages + +find_package(ZLIB REQUIRED) +include_directories(${ZLIB_INCLUDE_DIR}) +find_package(PNG REQUIRED) +include_directories(${PNG_INCLUDE_DIR}) + +# define src/headers files + +FILE(GLOB RSE_TEX_SRCS src/*.c) +FILE(GLOB RSE_TEX_HRDS src/*.h) +SOURCE_GROUP("Source Files" FILES ${RSE_TEX_SRCS}) +SOURCE_GROUP("Header Files" FILES ${RSE_TEX_HRDS}) + +# begin building RSE-Texture + +#include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +add_executable(rse-texture ${RSE_TEX_SRCS} ${RSE_TEX_HRDS}) +set_target_properties(rse-texture PROPERTIES OUTPUT_NAME ${RSE_TEX_NAME}) +if(MSVC) + # msvc does not append 'lib' - do it here to have consistent name + set_target_properties(rse-texture PROPERTIES PREFIX "lib") + set_target_properties(rse-texture PROPERTIES IMPORT_PREFIX "lib") +endif() +target_link_libraries(rse-texture ${ZLIB_LIBRARIES} ${PNG_LIBRARIES}) + +# install executable + +install(TARGETS rse-texture + RUNTIME DESTINATION bin +) \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 4387beb..0000000 --- a/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -CC=gcc -#CFLAGS= -Wextra -Wall -O0 -g -CFLAGS= -Wall -O3 -LDFLAGS= -lz -lpng - -TARGET=RogueDE-texture -VERSION=1.0a -SRC_DIR=src -SRC= $(wildcard $(SRC_DIR)/*.c) -INCLUDES=-I$(SRC_DIR) -BUILD_DIR=obj -OBJS= $(subst src,$(BUILD_DIR),$(SRC:%.c=%.o)) - - -.PHONY: $(BUILD_DIR) all clean - - -all: clean $(BUILD_DIR) $(TARGET) - - -$(BUILD_DIR)/%.o: src/%.c - $(CC) $(INCLUDES) -DVERSION='"$(VERSION)"' -c -o $@ $< $(CFLAGS) - -$(BUILD_DIR): - @mkdir -p $(BUILD_DIR) - -$(TARGET): $(OBJS) - $(CC) -o $@_$(VERSION) $^ $(LDFLAGS) - - -clean: - @rm -rf $(BUILD_DIR) - @rm -f RogueDE-* diff --git a/src/Texture-Extractor.h b/src/Texture-Extractor.h index 6db89d2..a92aa5f 100644 --- a/src/Texture-Extractor.h +++ b/src/Texture-Extractor.h @@ -10,6 +10,7 @@ #include #include #endif +#include "config.h" #include "options.h" #include "HMT_Parser.h" #include "RS_images.h" diff --git a/src/config.h.in b/src/config.h.in new file mode 100644 index 0000000..32f49cf --- /dev/null +++ b/src/config.h.in @@ -0,0 +1 @@ +#define VERSION "@PROJECT_VERSION@"