From b47b52f5402f511ec6689bc5c36536f65f58bb50 Mon Sep 17 00:00:00 2001 From: dcvz Date: Sun, 19 May 2024 22:31:47 +0200 Subject: [PATCH] Add CMakeLists --- CMakeLists.txt | 8 +++++ librecomp/CMakeLists.txt | 34 +++++++++++++++++++ librecomp/include/recomp.h | 4 +++ librecomp/include/recomp_game.h | 2 +- librecomp/include/recomp_helpers.h | 2 +- librecomp/src/ai.cpp | 4 +-- librecomp/src/cont.cpp | 2 +- librecomp/src/eep.cpp | 2 +- librecomp/src/flash.cpp | 4 +-- librecomp/src/math_routines.cpp | 2 +- librecomp/src/pak.cpp | 4 +-- librecomp/src/pi.cpp | 4 +-- librecomp/src/print.cpp | 4 +-- librecomp/src/recomp.cpp | 2 +- librecomp/src/sp.cpp | 2 +- librecomp/src/ultra_stubs.cpp | 4 +-- librecomp/src/ultra_translation.cpp | 4 +-- librecomp/src/vi.cpp | 2 +- ultramodern/CMakeLists.txt | 18 ++++++++++ .../include/{ => ultramodern}/config.hpp | 0 .../include/{ => ultramodern}/rt64_layer.h | 0 .../include/{ => ultramodern}/ultra64.h | 0 .../include/{ => ultramodern}/ultramodern.hpp | 0 23 files changed, 86 insertions(+), 22 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 librecomp/CMakeLists.txt create mode 100644 ultramodern/CMakeLists.txt rename ultramodern/include/{ => ultramodern}/config.hpp (100%) rename ultramodern/include/{ => ultramodern}/rt64_layer.h (100%) rename ultramodern/include/{ => ultramodern}/ultra64.h (100%) rename ultramodern/include/{ => ultramodern}/ultramodern.hpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6d8c423 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.20) +project(N64ModernRuntime) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +add_subdirectory(librecomp) +add_subdirectory(ultramodern) diff --git a/librecomp/CMakeLists.txt b/librecomp/CMakeLists.txt new file mode 100644 index 0000000..4661b1d --- /dev/null +++ b/librecomp/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.20) +project(librecomp) + +# Check for headers +include(CheckIncludeFile) +check_include_file("malloc.h" HAVE_MALLOC_H) + +if(HAVE_MALLOC_H) + add_compile_definitions(HAVE_MALLOC_H) +endif() + +# Define the library +add_library(librecomp STATIC + "${CMAKE_CURRENT_SOURCE_DIR}/src/ai.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/cont.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/dp.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/eep.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/euc-jp.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/flash.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/math_routines.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/overlays.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/pak.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/patch_loading.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/pi.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/print.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/recomp.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/sp.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/ultra_stubs.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/ultra_translation.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/vi.cpp") + +target_include_directories(librecomp PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") + +target_link_libraries(librecomp PRIVATE ultramodern) diff --git a/librecomp/include/recomp.h b/librecomp/include/recomp.h index bbfbba0..57eb7da 100644 --- a/librecomp/include/recomp.h +++ b/librecomp/include/recomp.h @@ -1,11 +1,15 @@ #ifndef __RECOMP_H__ #define __RECOMP_H__ +#include #include #include #include #include + +#ifdef HAVE_MALLOC_H #include +#endif typedef uint64_t gpr; diff --git a/librecomp/include/recomp_game.h b/librecomp/include/recomp_game.h index d528f18..b448a17 100644 --- a/librecomp/include/recomp_game.h +++ b/librecomp/include/recomp_game.h @@ -5,7 +5,7 @@ #include #include "recomp.h" -#include "../ultramodern/ultramodern.hpp" +#include #include "rt64_layer.h" namespace recomp { diff --git a/librecomp/include/recomp_helpers.h b/librecomp/include/recomp_helpers.h index cfadf81..1562b99 100644 --- a/librecomp/include/recomp_helpers.h +++ b/librecomp/include/recomp_helpers.h @@ -2,7 +2,7 @@ #define __RECOMP_HELPERS__ #include "recomp.h" -#include "../ultramodern/ultra64.h" +#include template T _arg(uint8_t* rdram, recomp_context* ctx) { diff --git a/librecomp/src/ai.cpp b/librecomp/src/ai.cpp index 44dbea2..0195f2b 100644 --- a/librecomp/src/ai.cpp +++ b/librecomp/src/ai.cpp @@ -1,8 +1,8 @@ #include "recomp.h" #include #include -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include #define VI_NTSC_CLOCK 48681812 diff --git a/librecomp/src/cont.cpp b/librecomp/src/cont.cpp index 42492c3..d731240 100644 --- a/librecomp/src/cont.cpp +++ b/librecomp/src/cont.cpp @@ -1,4 +1,4 @@ -#include "../ultramodern/ultramodern.hpp" +#include #include "recomp_helpers.h" static ultramodern::input_callbacks_t input_callbacks; diff --git a/librecomp/src/eep.cpp b/librecomp/src/eep.cpp index ddc612d..2485ec8 100644 --- a/librecomp/src/eep.cpp +++ b/librecomp/src/eep.cpp @@ -1,5 +1,5 @@ #include "recomp.h" -#include "../ultramodern/ultra64.h" +#include void save_write(RDRAM_ARG PTR(void) rdram_address, uint32_t offset, uint32_t count); void save_read(RDRAM_ARG PTR(void) rdram_address, uint32_t offset, uint32_t count); diff --git a/librecomp/src/flash.cpp b/librecomp/src/flash.cpp index 519eaa3..01ee0f3 100644 --- a/librecomp/src/flash.cpp +++ b/librecomp/src/flash.cpp @@ -1,7 +1,7 @@ #include #include -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include #include "recomp.h" // TODO move this out into ultramodern code diff --git a/librecomp/src/math_routines.cpp b/librecomp/src/math_routines.cpp index 234e96f..2bd21ce 100644 --- a/librecomp/src/math_routines.cpp +++ b/librecomp/src/math_routines.cpp @@ -1,4 +1,4 @@ -#include "../ultramodern/ultramodern.hpp" +#include #include "recomp.h" // TODO remove these by implementing the necessary instructions and control flow handling in the recompiler. diff --git a/librecomp/src/pak.cpp b/librecomp/src/pak.cpp index bf50132..7335419 100644 --- a/librecomp/src/pak.cpp +++ b/librecomp/src/pak.cpp @@ -1,6 +1,6 @@ #include "recomp.h" -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include extern "C" void osPfsInitPak_recomp(uint8_t * rdram, recomp_context* ctx) { ctx->r2 = 1; // PFS_ERR_NOPACK diff --git a/librecomp/src/pi.cpp b/librecomp/src/pi.cpp index 0c8a09d..2ae13ce 100644 --- a/librecomp/src/pi.cpp +++ b/librecomp/src/pi.cpp @@ -7,8 +7,8 @@ #include "recomp.h" #include "recomp_game.h" #include "recomp_config.h" -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include static std::vector rom; diff --git a/librecomp/src/print.cpp b/librecomp/src/print.cpp index b0ea771..2e10ca4 100644 --- a/librecomp/src/print.cpp +++ b/librecomp/src/print.cpp @@ -1,7 +1,7 @@ #include -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include #include "recomp.h" #include "euc-jp.h" diff --git a/librecomp/src/recomp.cpp b/librecomp/src/recomp.cpp index d75b0f9..6678366 100644 --- a/librecomp/src/recomp.cpp +++ b/librecomp/src/recomp.cpp @@ -15,7 +15,7 @@ #include "recomp_game.h" #include "recomp_config.h" #include "xxHash/xxh3.h" -#include "../ultramodern/ultramodern.hpp" +#include #include "../../RecompiledPatches/patches_bin.h" #include "mm_shader_cache.h" diff --git a/librecomp/src/sp.cpp b/librecomp/src/sp.cpp index b3ee63f..ae0f44f 100644 --- a/librecomp/src/sp.cpp +++ b/librecomp/src/sp.cpp @@ -1,6 +1,6 @@ #include #include -#include "../ultramodern/ultramodern.hpp" +#include #include "recomp.h" extern "C" void osSpTaskLoad_recomp(uint8_t* rdram, recomp_context* ctx) { diff --git a/librecomp/src/ultra_stubs.cpp b/librecomp/src/ultra_stubs.cpp index f2ac704..9dd263b 100644 --- a/librecomp/src/ultra_stubs.cpp +++ b/librecomp/src/ultra_stubs.cpp @@ -1,5 +1,5 @@ -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include #include "recomp.h" // None of these functions need to be reimplemented, so stub them out diff --git a/librecomp/src/ultra_translation.cpp b/librecomp/src/ultra_translation.cpp index 771758f..24ea0bd 100644 --- a/librecomp/src/ultra_translation.cpp +++ b/librecomp/src/ultra_translation.cpp @@ -1,6 +1,6 @@ #include -#include "../ultramodern/ultra64.h" -#include "../ultramodern/ultramodern.hpp" +#include +#include #include "recomp.h" extern "C" void osInitialize_recomp(uint8_t * rdram, recomp_context * ctx) { diff --git a/librecomp/src/vi.cpp b/librecomp/src/vi.cpp index 309e984..e38152f 100644 --- a/librecomp/src/vi.cpp +++ b/librecomp/src/vi.cpp @@ -1,4 +1,4 @@ -#include "../ultramodern/ultramodern.hpp" +#include #include "recomp.h" extern "C" void osViSetYScale_recomp(uint8_t* rdram, recomp_context * ctx) { diff --git a/ultramodern/CMakeLists.txt b/ultramodern/CMakeLists.txt new file mode 100644 index 0000000..ded4d93 --- /dev/null +++ b/ultramodern/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.20) +project(ultramodern) + +add_library(ultramodern STATIC + "${CMAKE_CURRENT_SOURCE_DIR}/src/audio.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/events.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/mesgqueue.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/misc_ultra.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/rt64_layer.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/scheduling.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/task_win32.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/threadqueue.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/threads.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/timer.cpp") + +target_include_directories(ultramodern PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}/include" + "${CMAKE_SOURCE_DIR}/thirdparty/concurrentqueue") diff --git a/ultramodern/include/config.hpp b/ultramodern/include/ultramodern/config.hpp similarity index 100% rename from ultramodern/include/config.hpp rename to ultramodern/include/ultramodern/config.hpp diff --git a/ultramodern/include/rt64_layer.h b/ultramodern/include/ultramodern/rt64_layer.h similarity index 100% rename from ultramodern/include/rt64_layer.h rename to ultramodern/include/ultramodern/rt64_layer.h diff --git a/ultramodern/include/ultra64.h b/ultramodern/include/ultramodern/ultra64.h similarity index 100% rename from ultramodern/include/ultra64.h rename to ultramodern/include/ultramodern/ultra64.h diff --git a/ultramodern/include/ultramodern.hpp b/ultramodern/include/ultramodern/ultramodern.hpp similarity index 100% rename from ultramodern/include/ultramodern.hpp rename to ultramodern/include/ultramodern/ultramodern.hpp