Add CMakeLists

This commit is contained in:
dcvz 2024-05-19 22:31:47 +02:00
parent 3504a4c71f
commit b47b52f540
23 changed files with 86 additions and 22 deletions

8
CMakeLists.txt Normal file
View file

@ -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)

34
librecomp/CMakeLists.txt Normal file
View file

@ -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)

View file

@ -1,11 +1,15 @@
#ifndef __RECOMP_H__
#define __RECOMP_H__
#include <stdlib.h>
#include <stdint.h>
#include <math.h>
#include <assert.h>
#include <setjmp.h>
#ifdef HAVE_MALLOC_H
#include <malloc.h>
#endif
typedef uint64_t gpr;

View file

@ -5,7 +5,7 @@
#include <filesystem>
#include "recomp.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "rt64_layer.h"
namespace recomp {

View file

@ -2,7 +2,7 @@
#define __RECOMP_HELPERS__
#include "recomp.h"
#include "../ultramodern/ultra64.h"
#include <ultramodern/ultra64.h>
template<int index, typename T>
T _arg(uint8_t* rdram, recomp_context* ctx) {

View file

@ -1,8 +1,8 @@
#include "recomp.h"
#include <cstdio>
#include <string>
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
#define VI_NTSC_CLOCK 48681812

View file

@ -1,4 +1,4 @@
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "recomp_helpers.h"
static ultramodern::input_callbacks_t input_callbacks;

View file

@ -1,5 +1,5 @@
#include "recomp.h"
#include "../ultramodern/ultra64.h"
#include <ultramodern/ultra64.h>
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);

View file

@ -1,7 +1,7 @@
#include <array>
#include <cassert>
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
// TODO move this out into ultramodern code

View file

@ -1,4 +1,4 @@
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
// TODO remove these by implementing the necessary instructions and control flow handling in the recompiler.

View file

@ -1,6 +1,6 @@
#include "recomp.h"
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
extern "C" void osPfsInitPak_recomp(uint8_t * rdram, recomp_context* ctx) {
ctx->r2 = 1; // PFS_ERR_NOPACK

View file

@ -7,8 +7,8 @@
#include "recomp.h"
#include "recomp_game.h"
#include "recomp_config.h"
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
static std::vector<uint8_t> rom;

View file

@ -1,7 +1,7 @@
#include <vector>
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
#include "euc-jp.h"

View file

@ -15,7 +15,7 @@
#include "recomp_game.h"
#include "recomp_config.h"
#include "xxHash/xxh3.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "../../RecompiledPatches/patches_bin.h"
#include "mm_shader_cache.h"

View file

@ -1,6 +1,6 @@
#include <cstdio>
#include <fstream>
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
extern "C" void osSpTaskLoad_recomp(uint8_t* rdram, recomp_context* ctx) {

View file

@ -1,5 +1,5 @@
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
// None of these functions need to be reimplemented, so stub them out

View file

@ -1,6 +1,6 @@
#include <memory>
#include "../ultramodern/ultra64.h"
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultra64.h>
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
extern "C" void osInitialize_recomp(uint8_t * rdram, recomp_context * ctx) {

View file

@ -1,4 +1,4 @@
#include "../ultramodern/ultramodern.hpp"
#include <ultramodern/ultramodern.hpp>
#include "recomp.h"
extern "C" void osViSetYScale_recomp(uint8_t* rdram, recomp_context * ctx) {

View file

@ -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")