mirror of
https://github.com/ptitSeb/box64.git
synced 2024-11-24 06:59:53 +00:00
Third pass, bumped the minimal CMake version up to 3.4
This commit is contained in:
parent
51fa96c44b
commit
e93a280d2c
@ -1,4 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
cmake_minimum_required(VERSION 3.4)
|
||||
|
||||
cmake_policy(SET CMP0065 NEW)
|
||||
|
||||
option(RPI4ARM64 "Set to ON if targeting an RaspberryPI4 device with multiarch arm64 and armhf" ${RPI4ARM64})
|
||||
option(RK3326 "Set to ON if targeting an Rockchip RK3326 based device" ${RK3326})
|
||||
@ -36,7 +38,7 @@ project(box64 C ASM)
|
||||
|
||||
enable_testing()
|
||||
|
||||
set(default_build_type "RelwithDebInfo")
|
||||
set(default_build_type "RelWithDebInfo")
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE)
|
||||
@ -101,6 +103,8 @@ if(USE_CCACHE)
|
||||
if(CCACHE_FOUND)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
||||
else()
|
||||
message(SEND_ERROR "ccache not found!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -259,9 +263,9 @@ set(WRAPPER "${BOX64_ROOT}/src/wrapped/generated/wrapper.c" "${BOX64_ROOT}/src/w
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${BOX64_ROOT}/src/wrapped/generated/functions_list.txt"
|
||||
COMMAND "${PYTHON_EXECUTABLE}" "${BOX64_ROOT}/rebuild_wrappers.py"
|
||||
"${BOX64_ROOT}"
|
||||
"PANDORA" "HAVE_LD80BITS" "NOALIGN" "HAVE_TRACE" "--"
|
||||
COMMAND "${PYTHON_EXECUTABLE}" "${BOX64_ROOT}/rebuild_wrappers.py"
|
||||
"${BOX64_ROOT}"
|
||||
"PANDORA" "HAVE_LD80BITS" "NOALIGN" "HAVE_TRACE" "--"
|
||||
${WRAPPEDS_HEAD}
|
||||
MAIN_DEPENDENCY "${BOX64_ROOT}/rebuild_wrappers.py"
|
||||
DEPENDS ${WRAPPEDS} ${WRAPPEDS_HEAD}
|
||||
@ -338,9 +342,9 @@ if(ARM_DYNAREC)
|
||||
add_dependencies(arm64_pass2 WRAPPERS)
|
||||
add_dependencies(arm64_pass3 WRAPPERS)
|
||||
|
||||
add_library(dynarec STATIC
|
||||
$<TARGET_OBJECTS:dynarec_arm>
|
||||
$<TARGET_OBJECTS:arm64_pass0>
|
||||
add_library(dynarec STATIC
|
||||
$<TARGET_OBJECTS:dynarec_arm>
|
||||
$<TARGET_OBJECTS:arm64_pass0>
|
||||
$<TARGET_OBJECTS:arm64_pass1>
|
||||
$<TARGET_OBJECTS:arm64_pass2>
|
||||
$<TARGET_OBJECTS:arm64_pass3>
|
||||
@ -364,6 +368,7 @@ else()
|
||||
endif()
|
||||
|
||||
add_executable(${BOX64} ${ELFLOADER_SRC} ${WRAPPEDS} "${BOX64_ROOT}/src/git_head.h")
|
||||
set_target_properties(${BOX64} PROPERTIES ENABLE_EXPORTS ON)
|
||||
add_dependencies(${BOX64} WRAPPERS)
|
||||
#add_dependencies(${BOX64} PRINTER)
|
||||
target_link_libraries(${BOX64} m dl rt pthread)
|
||||
@ -373,14 +378,12 @@ endif()
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.13")
|
||||
if(NOT NOLOADADDR)
|
||||
set_target_properties(${BOX64} PROPERTIES LINK_FLAGS "-rdynamic -Wl,-Ttext-segment,${BOX64_ELF_ADDRESS}")
|
||||
else()
|
||||
set_target_properties(${BOX64} PROPERTIES LINK_FLAGS "-rdynamic")
|
||||
set_target_properties(${BOX64} PROPERTIES LINK_FLAGS "-Wl,-Ttext-segment,${BOX64_ELF_ADDRESS}")
|
||||
endif()
|
||||
else()
|
||||
target_link_options(${BOX64} PUBLIC -rdynamic)
|
||||
# If symbols are missing, try this: target_link_options(${BOX64} PUBLIC -rdynamic)
|
||||
if(NOT NOLOADADDR)
|
||||
target_link_options(${BOX64} PUBLIC -Wl,-Ttext-segment,${BOX64_ELF_ADDRESS})
|
||||
target_link_options(${BOX64} PUBLIC LINKER:-Ttext-segment,${BOX64_ELF_ADDRESS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -46,9 +46,9 @@ typedef struct bridged_s {
|
||||
|
||||
KHASH_MAP_INIT_STR(bridgemap, bridged_t)
|
||||
|
||||
KHASH_MAP_IMPL_STR(datamap, uint32_t)
|
||||
KHASH_MAP_IMPL_STR(symbolmap, wrapper_t)
|
||||
KHASH_MAP_IMPL_STR(symbol2map, symbol2_t)
|
||||
KHASH_MAP_IMPL_STR(datamap, uint64_t)
|
||||
|
||||
char* Path2Name(const char* path)
|
||||
{
|
||||
@ -129,7 +129,6 @@ int EmuLib_GetLocal(library_t* lib, const char* name, uintptr_t *offs, uintptr_t
|
||||
|
||||
int NativeLib_GetLocal(library_t* lib, const char* name, uintptr_t *offs, uintptr_t *sz)
|
||||
{
|
||||
// TODO
|
||||
(void)lib; (void)name; (void)offs; (void)sz;
|
||||
return 0;
|
||||
}
|
||||
@ -537,7 +536,7 @@ int GetElfIndex(library_t* lib)
|
||||
return lib->priv.n.elf_index;
|
||||
}
|
||||
|
||||
int getSymbolInMaps(library_t*lib, const char* name, int noweak, uintptr_t *addr, uint32_t *size)
|
||||
int getSymbolInMaps(library_t *lib, const char* name, int noweak, uintptr_t *addr, uintptr_t *size)
|
||||
{
|
||||
if(!lib->active)
|
||||
return 0;
|
||||
|
@ -23,7 +23,7 @@ typedef struct symbol2_s {
|
||||
|
||||
KHASH_MAP_DECLARE_STR(symbolmap, wrapper_t)
|
||||
KHASH_MAP_DECLARE_STR(symbol2map, symbol2_t)
|
||||
KHASH_MAP_DECLARE_STR(datamap, uint32_t)
|
||||
KHASH_MAP_DECLARE_STR(datamap, uintptr_t)
|
||||
|
||||
|
||||
#ifndef MAX_PATH
|
||||
@ -62,7 +62,7 @@ typedef struct library_s {
|
||||
union {
|
||||
wlib_t w;
|
||||
nlib_t n;
|
||||
} priv; // private lib data
|
||||
} priv; // private lib data
|
||||
box64context_t *context; // parent context
|
||||
kh_bridgemap_t *bridgemap;
|
||||
kh_symbolmap_t *symbolmap;
|
||||
@ -93,10 +93,10 @@ typedef struct map_onesymbol2_s {
|
||||
} map_onesymbol2_t;
|
||||
typedef struct map_onedata_s {
|
||||
const char* name;
|
||||
uint32_t sz;
|
||||
uint32_t sz; // TODO: convert to size_t
|
||||
int weak;
|
||||
} map_onedata_t;
|
||||
|
||||
int getSymbolInMaps(library_t*lib, const char* name, int noweak, uintptr_t *addr, uint32_t *size); // Add bridges to functions
|
||||
int getSymbolInMaps(library_t *lib, const char* name, int noweak, uintptr_t *addr, uintptr_t *size); // Add bridges to functions
|
||||
|
||||
#endif //__LIBRARY_PRIVATE_H_
|
||||
|
@ -194,10 +194,10 @@ int FUNC(_fini)(library_t* lib)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int FUNC(_get)(library_t* lib, const char* name, uintptr_t *offs, uint32_t *sz)
|
||||
int FUNC(_get)(library_t* lib, const char* name, uintptr_t *offs, uintptr_t *sz)
|
||||
{
|
||||
uintptr_t addr = 0;
|
||||
uint32_t size = 0;
|
||||
uintptr_t size = 0;
|
||||
#ifdef CUSTOM_FAIL
|
||||
void* symbol = NULL;
|
||||
#endif
|
||||
@ -217,10 +217,10 @@ int FUNC(_get)(library_t* lib, const char* name, uintptr_t *offs, uint32_t *sz)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int FUNC(_getnoweak)(library_t* lib, const char* name, uintptr_t *offs, uint32_t *sz)
|
||||
int FUNC(_getnoweak)(library_t* lib, const char* name, uintptr_t *offs, uintptr_t *sz)
|
||||
{
|
||||
uintptr_t addr = 0;
|
||||
uint32_t size = 0;
|
||||
uintptr_t size = 0;
|
||||
#ifdef CUSTOM_FAIL
|
||||
void* symbol = NULL;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user