diff --git a/CMakeLists.txt b/CMakeLists.txt index e12f86f..d977423 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,9 +2,15 @@ cmake_minimum_required(VERSION 3.13) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) -project(fallout2-ce LANGUAGES CXX) +set(EXECUTABLE_NAME fallout2-ce) -add_executable(fallout2-ce WIN32 +project(${EXECUTABLE_NAME}) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED YES) +set(CMAKE_CXX_EXTENSIONS NO) + +add_executable(${EXECUTABLE_NAME} WIN32 "src/actions.cc" "src/actions.h" "src/animation.cc" @@ -226,22 +232,30 @@ add_executable(fallout2-ce WIN32 "src/xfile.h" ) -target_sources(fallout2-ce PUBLIC +target_sources(${EXECUTABLE_NAME} PUBLIC "src/fps_limiter.cc" "src/fps_limiter.h" "src/sfall_config.cc" "src/sfall_config.h" ) -target_compile_definitions(fallout2-ce PUBLIC +target_compile_definitions(${EXECUTABLE_NAME} PUBLIC _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS ) -target_link_libraries(fallout2-ce +target_link_libraries(${EXECUTABLE_NAME} winmm ) add_subdirectory("third_party/fpattern") +target_link_libraries(${EXECUTABLE_NAME} ${FPATTERN_LIBRARY}) +target_include_directories(${EXECUTABLE_NAME} PRIVATE ${FPATTERN_INCLUDE_DIR}) + add_subdirectory("third_party/zlib") +target_link_libraries(${EXECUTABLE_NAME} ${ZLIB_LIBRARIES}) +target_include_directories(${EXECUTABLE_NAME} PRIVATE ${ZLIB_INCLUDE_DIRS}) + add_subdirectory("third_party/sdl2") +target_link_libraries(${EXECUTABLE_NAME} ${SDL2_LIBRARIES}) +target_include_directories(${EXECUTABLE_NAME} PRIVATE ${SDL2_INCLUDE_DIRS}) diff --git a/src/core.cc b/src/core.cc index 3d27d2e..983aa7c 100644 --- a/src/core.cc +++ b/src/core.cc @@ -540,8 +540,7 @@ void tickersExecute() return; } -#pragma warning(suppress : 28159) - gTickerLastTimestamp = GetTickCount(); + gTickerLastTimestamp = SDL_GetTicks(); TickerListNode* curr = gTickerListHead; TickerListNode** currPtr = &(gTickerListHead); @@ -839,8 +838,7 @@ void screenshotHandlerConfigure(int keyCode, ScreenshotHandler* handler) // 0x4C9370 unsigned int _get_time() { -#pragma warning(suppress : 28159) - return GetTickCount(); + return SDL_GetTicks(); } // 0x4C937C @@ -865,8 +863,7 @@ void coreDelayProcessingEvents(unsigned int delay) // 0x4C93B8 void coreDelay(unsigned int ms) { -#pragma warning(suppress : 28159) - unsigned int start = GetTickCount(); + unsigned int start = SDL_GetTicks(); unsigned int diff; do { // NOTE: Uninline @@ -877,8 +874,7 @@ void coreDelay(unsigned int ms) // 0x4C93E0 unsigned int getTicksSince(unsigned int start) { -#pragma warning(suppress : 28159) - unsigned int end = GetTickCount(); + unsigned int end = SDL_GetTicks(); // NOTE: Uninline. return getTicksBetween(end, start); diff --git a/src/dfile.cc b/src/dfile.cc index 3595798..90a6b21 100644 --- a/src/dfile.cc +++ b/src/dfile.cc @@ -1,6 +1,6 @@ #include "dfile.h" -#include "fpattern.h" +#include #include #include diff --git a/third_party/fpattern/CMakeLists.txt b/third_party/fpattern/CMakeLists.txt index 1bb90aa..43f4153 100644 --- a/third_party/fpattern/CMakeLists.txt +++ b/third_party/fpattern/CMakeLists.txt @@ -10,10 +10,15 @@ if (NOT fpattern_POPULATED) FetchContent_Populate(fpattern) endif() -target_sources(fallout2-ce PUBLIC +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") +endif() + +add_library(fpattern STATIC "${fpattern_SOURCE_DIR}/debug.h" "${fpattern_SOURCE_DIR}/fpattern.c" "${fpattern_SOURCE_DIR}/fpattern.h" ) -target_include_directories(fallout2-ce PUBLIC ${fpattern_SOURCE_DIR}) +set(FPATTERN_LIBRARY "fpattern" PARENT_SCOPE) +set(FPATTERN_INCLUDE_DIR "${fpattern_SOURCE_DIR}" PARENT_SCOPE) diff --git a/third_party/sdl2/CMakeLists.txt b/third_party/sdl2/CMakeLists.txt index 8bfdb32..06e5b61 100644 --- a/third_party/sdl2/CMakeLists.txt +++ b/third_party/sdl2/CMakeLists.txt @@ -19,5 +19,6 @@ if (NOT sdl2_POPULATED) endif() add_subdirectory(${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR} EXCLUDE_FROM_ALL) -target_include_directories(fallout2-ce PUBLIC ${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR}) -target_link_libraries(fallout2-ce SDL2-static SDL2::SDL2main) + +set(SDL2_INCLUDE_DIRS ${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR} PARENT_SCOPE) +set(SDL2_LIBRARIES SDL2-static SDL2::SDL2main PARENT_SCOPE) diff --git a/third_party/zlib/CMakeLists.txt b/third_party/zlib/CMakeLists.txt index f7a8acf..9f17c85 100644 --- a/third_party/zlib/CMakeLists.txt +++ b/third_party/zlib/CMakeLists.txt @@ -11,5 +11,6 @@ if (NOT zlib_POPULATED) endif() add_subdirectory(${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} EXCLUDE_FROM_ALL) -target_include_directories(fallout2-ce PUBLIC ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) -target_link_libraries(fallout2-ce zlibstatic) + +set(ZLIB_LIBRARIES zlibstatic PARENT_SCOPE) +set(ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} PARENT_SCOPE)