cmake fixes. makefile clean up. load gles3 driver with sdl
add FindSDL2.cmake and don't provide wrong hint cmake: option to disable vulkan don't use/link with egl if using sdl remove ARM_HARDFP and use standard __ARM_PCS_VFP #def hide texture upscaling options if no openmp
This commit is contained in:
parent
06be0d927b
commit
d8a25e73f2
|
@ -15,6 +15,7 @@ option(USE_GLES "Use GLES[3] API" OFF)
|
|||
option(USE_GLES2 "Use GLES2 API" OFF)
|
||||
option(USE_HOST_LIBZIP "Use host libzip" ON)
|
||||
option(USE_OPENMP "Use OpenMP if available" ON)
|
||||
option(USE_VULKAN "Build with Vulkan support" ON)
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/shell/cmake")
|
||||
|
||||
|
@ -148,8 +149,10 @@ if(MINGW)
|
|||
target_link_libraries(${PROJECT_NAME} PRIVATE "-static-libgcc -static-libstdc++")
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID)
|
||||
if(WIN32)
|
||||
find_package(SDL2 HINTS "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL/cmake")
|
||||
elseif(NOT ANDROID)
|
||||
find_package(SDL2)
|
||||
endif()
|
||||
if(SDL2_FOUND)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO)
|
||||
|
@ -228,7 +231,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE)
|
|||
target_link_libraries(${PROJECT_NAME} PRIVATE opagent)
|
||||
endif()
|
||||
|
||||
find_package(miniupnpc)
|
||||
find_package(Miniupnpc)
|
||||
if (MINIUPNP_FOUND)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${MINIUPNP_INCLUDE_DIRS})
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${MINIUPNP_LIBRARIES})
|
||||
|
@ -238,10 +241,12 @@ endif()
|
|||
if(UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
if(USE_GLES2)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE GLES GLES2)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE GLESv2 EGL)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE GLESv2)
|
||||
elseif(USE_GLES)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE GLES GLES3)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE EGL)
|
||||
if(NOT SDL2_FOUND)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE EGL)
|
||||
endif()
|
||||
else()
|
||||
set(OpenGL_GL_PREFERENCE LEGACY)
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
@ -795,7 +800,7 @@ target_sources(${PROJECT_NAME} PRIVATE
|
|||
core/rend/TexCache.cpp
|
||||
core/rend/TexCache.h)
|
||||
|
||||
if(NOT (APPLE OR ANDROID OR USE_GLES))
|
||||
if(NOT (APPLE OR ANDROID OR USE_GLES OR USE_GLES2))
|
||||
target_sources(${PROJECT_NAME} PRIVATE
|
||||
core/rend/gl4/abuffer.cpp
|
||||
core/rend/gl4/gl4.h
|
||||
|
@ -804,7 +809,7 @@ if(NOT (APPLE OR ANDROID OR USE_GLES))
|
|||
core/rend/gl4/gltex.cpp)
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
if(USE_VULKAN AND NOT APPLE)
|
||||
if(ANDROID)
|
||||
set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_ANDROID_KHR)
|
||||
elseif(X11_FOUND)
|
||||
|
|
|
@ -247,7 +247,7 @@
|
|||
#define SH4_RAM_CLOCK (100*1000*1000) //[100000000] XTal(13.5) -> PLL (33.3) -> PLL 1:3 (100) , also suplied to HOLLY chip
|
||||
#define G2_BUS_CLOCK (25*1000*1000) //[25000000] from Holly, from SH4_RAM_CLOCK w/ 2 2:1 plls
|
||||
|
||||
#if defined(GLES) && !defined(GLES3)
|
||||
#if defined(GLES) && !defined(GLES3) && !defined(GLES2)
|
||||
// Only use GL ES 2.0 API functions
|
||||
#define GLES2
|
||||
#endif
|
||||
|
|
10
core/core.mk
10
core/core.mk
|
@ -72,16 +72,6 @@ ifdef FOR_WINDOWS
|
|||
RZDCY_CFLAGS += -I$(RZDCY_SRC_DIR)/deps/dirent
|
||||
endif
|
||||
|
||||
ifdef FOR_PANDORA
|
||||
RZDCY_CFLAGS += \
|
||||
$(CFLAGS) -c -O3 \
|
||||
-DNDEBUG -DPANDORA\
|
||||
-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
|
||||
-frename-registers -fsingle-precision-constant -ffast-math \
|
||||
-ftree-vectorize -fomit-frame-pointer
|
||||
RZDCY_CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon
|
||||
endif
|
||||
|
||||
ifdef USE_VULKAN
|
||||
ifdef FOR_WINDOWS
|
||||
RZDCY_CFLAGS += -DVK_USE_PLATFORM_WIN32_KHR
|
||||
|
|
|
@ -464,59 +464,42 @@ void ngen_CC_Param(shil_opcode* op,shil_param* par,CanonicalParamType tp)
|
|||
switch(tp)
|
||||
{
|
||||
case CPT_f32rv:
|
||||
#ifdef ARM_HARDFP
|
||||
{
|
||||
#ifdef __ARM_PCS_VFP
|
||||
// -mfloat-abi=hard
|
||||
if (reg.IsAllocg(*par))
|
||||
{
|
||||
//printf("MOV(reg.map(*par),r0); %d\n",reg.map(*par));
|
||||
VMOV(reg.mapg(*par),f0);
|
||||
}
|
||||
VMOV(reg.mapg(*par), f0);
|
||||
else if (reg.IsAllocf(*par))
|
||||
{
|
||||
//VMOV(reg.mapf(*par),0,r0); %d\n",reg.map(*par));
|
||||
VMOV(reg.mapfs(*par),f0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
VMOV(reg.mapfs(*par), f0);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case CPT_u32rv:
|
||||
case CPT_u64rvL:
|
||||
{
|
||||
if (reg.IsAllocg(*par))
|
||||
{
|
||||
//printf("MOV(reg.map(*par),r0); %d\n",reg.map(*par));
|
||||
MOV(reg.mapg(*par),r0);
|
||||
}
|
||||
else if (reg.IsAllocf(*par))
|
||||
{
|
||||
//VMOV(reg.mapf(*par),0,r0); %d\n",reg.map(*par));
|
||||
VMOV(reg.mapfs(*par),r0);
|
||||
}
|
||||
else
|
||||
die("unhandled param");
|
||||
}
|
||||
if (reg.IsAllocg(*par))
|
||||
MOV(reg.mapg(*par), r0);
|
||||
else if (reg.IsAllocf(*par))
|
||||
VMOV(reg.mapfs(*par), r0);
|
||||
else
|
||||
die("unhandled param");
|
||||
break;
|
||||
|
||||
case CPT_u64rvH:
|
||||
{
|
||||
verify(reg.IsAllocg(*par));
|
||||
|
||||
MOV(reg.mapg(*par),r1);
|
||||
}
|
||||
verify(reg.IsAllocg(*par));
|
||||
MOV(reg.mapg(*par), r1);
|
||||
break;
|
||||
|
||||
case CPT_u32:
|
||||
case CPT_ptr:
|
||||
case CPT_f32:
|
||||
{
|
||||
CC_PS t={tp,par};
|
||||
CC_PS t = { tp, par };
|
||||
CC_pars.push_back(t);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
die("invalid tp");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -536,42 +519,30 @@ void ngen_CC_Call(shil_opcode* op, void* function)
|
|||
{
|
||||
if (param.par->is_reg())
|
||||
{
|
||||
#ifdef ARM_HARDFP
|
||||
#ifdef __ARM_PCS_VFP
|
||||
// -mfloat-abi=hard
|
||||
if (param.type == CPT_f32)
|
||||
{
|
||||
if (reg.IsAllocg(*param.par))
|
||||
{
|
||||
//printf("MOV((eReg)rd,reg.map(*param.par)); %d %d\n",rd,reg.map(*param.par));
|
||||
VMOV((eFSReg)fd, reg.mapg(*param.par));
|
||||
}
|
||||
else if (reg.IsAllocf(*param.par))
|
||||
{
|
||||
//printf("LoadSh4Reg_mem((eReg)rd, *param.par); %d\n",rd);
|
||||
VMOV((eFSReg)fd, reg.mapfs(*param.par));
|
||||
}
|
||||
else
|
||||
die("Must not happen!\n");
|
||||
die("Must not happen!");
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (reg.IsAllocg(*param.par))
|
||||
{
|
||||
//printf("MOV((eReg)rd,reg.map(*param.par)); %d %d\n",rd,reg.map(*param.par));
|
||||
MOV((eReg)rd, reg.mapg(*param.par));
|
||||
}
|
||||
else if (reg.IsAllocf(*param.par))
|
||||
{
|
||||
//printf("LoadSh4Reg_mem((eReg)rd, *param.par); %d\n",rd);
|
||||
VMOV((eReg)rd, reg.mapfs(*param.par));
|
||||
}
|
||||
else
|
||||
die("Must not happen!\n");
|
||||
die("Must not happen!");
|
||||
}
|
||||
else
|
||||
{
|
||||
verify(param.par->is_imm());
|
||||
//printf("MOV32((eReg)rd, param.par->_imm); %d\n",rd);
|
||||
MOV32((eReg)rd, param.par->_imm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1338,12 +1338,14 @@ static void gui_display_settings()
|
|||
}
|
||||
if (ImGui::CollapsingHeader("Texture Upscaling", ImGuiTreeNodeFlags_DefaultOpen))
|
||||
{
|
||||
#ifndef TARGET_NO_OPENMP
|
||||
OptionSlider("Texture Upscaling", config::TextureUpscale, 1, 8,
|
||||
"Upscale textures with the xBRZ algorithm. Only on fast platforms and for certain 2D games");
|
||||
OptionSlider("Upscaled Texture Max Size", config::MaxFilteredTextureSize, 8, 1024,
|
||||
"Textures larger than this dimension squared will not be upscaled");
|
||||
OptionSlider("Max Threads", config::MaxThreads, 1, 8,
|
||||
"Maximum number of threads to use for texture upscaling. Recommended: number of physical cores minus one");
|
||||
#endif
|
||||
OptionCheckbox("Load Custom Textures", config::CustomTextures,
|
||||
"Load custom/high-res textures from data/textures/<game id>");
|
||||
}
|
||||
|
|
|
@ -18,10 +18,14 @@
|
|||
*/
|
||||
#include <stddef.h>
|
||||
#include <GLES32/gl32.h>
|
||||
#include <EGL/egl.h>
|
||||
#if defined(GLES3) && defined(__ANDROID__)
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
#ifdef USE_SDL
|
||||
#include <SDL2/SDL.h>
|
||||
#else
|
||||
#include <EGL/egl.h>
|
||||
#endif
|
||||
#include "gl32funcs.h"
|
||||
#include "build.h"
|
||||
|
||||
|
@ -30,12 +34,16 @@ void load_gles_symbols()
|
|||
#ifdef GLES3
|
||||
for (int i = 0; rglgen_symbol_map[i].sym != NULL; i++)
|
||||
{
|
||||
#ifdef USE_SDL
|
||||
*(void **)rglgen_symbol_map[i].ptr = SDL_GL_GetProcAddress(rglgen_symbol_map[i].sym);
|
||||
#else
|
||||
#if defined(__ANDROID__)
|
||||
//try to load via dlsym -- older android (< 4.4?) can't load everything via eglGetProcAddress
|
||||
*(void **)rglgen_symbol_map[i].ptr = (void*)dlsym(RTLD_DEFAULT, rglgen_symbol_map[i].sym);
|
||||
if (*(void **)rglgen_symbol_map[i].ptr == NULL)
|
||||
#endif
|
||||
*(void **)rglgen_symbol_map[i].ptr = eglGetProcAddress(rglgen_symbol_map[i].sym);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -0,0 +1,250 @@
|
|||
# - Find SDL2
|
||||
# Find the SDL2 headers and libraries
|
||||
#
|
||||
# SDL2::SDL2 - Imported target to use for building a library
|
||||
# SDL2::SDL2main - Imported interface target to use if you want SDL and SDLmain.
|
||||
# SDL2_FOUND - True if SDL2 was found.
|
||||
# SDL2_DYNAMIC - If we found a DLL version of SDL (meaning you might want to copy a DLL from SDL2::SDL2)
|
||||
#
|
||||
# Original Author:
|
||||
# 2015 Ryan Pavlik <ryan.pavlik@gmail.com> <abiryan@ryand.net>
|
||||
#
|
||||
# Copyright Sensics, Inc. 2015.
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
# Set up architectures (for windows) and prefixes (for mingw builds)
|
||||
if(WIN32)
|
||||
if(MINGW)
|
||||
include(MinGWSearchPathExtras OPTIONAL)
|
||||
if(MINGWSEARCH_TARGET_TRIPLE)
|
||||
set(SDL2_PREFIX ${MINGWSEARCH_TARGET_TRIPLE})
|
||||
endif()
|
||||
endif()
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(SDL2_LIB_PATH_SUFFIX lib/x64)
|
||||
if(NOT MSVC AND NOT SDL2_PREFIX)
|
||||
set(SDL2_PREFIX x86_64-w64-mingw32)
|
||||
endif()
|
||||
else()
|
||||
set(SDL2_LIB_PATH_SUFFIX lib/x86)
|
||||
if(NOT MSVC AND NOT SDL2_PREFIX)
|
||||
set(SDL2_PREFIX i686-w64-mingw32)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL2_PREFIX)
|
||||
set(SDL2_ORIGPREFIXPATH ${CMAKE_PREFIX_PATH})
|
||||
if(SDL2_ROOT_DIR)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${SDL2_ROOT_DIR}")
|
||||
endif()
|
||||
if(CMAKE_PREFIX_PATH)
|
||||
foreach(_prefix ${CMAKE_PREFIX_PATH})
|
||||
list(APPEND CMAKE_PREFIX_PATH "${_prefix}/${SDL2_PREFIX}")
|
||||
endforeach()
|
||||
endif()
|
||||
if(MINGWSEARCH_PREFIXES)
|
||||
list(APPEND CMAKE_PREFIX_PATH ${MINGWSEARCH_PREFIXES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Invoke pkgconfig for hints
|
||||
find_package(PkgConfig QUIET)
|
||||
set(SDL2_INCLUDE_HINTS)
|
||||
set(SDL2_LIB_HINTS)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(SDL2PC QUIET sdl2)
|
||||
if(SDL2PC_INCLUDE_DIRS)
|
||||
set(SDL2_INCLUDE_HINTS ${SDL2PC_INCLUDE_DIRS})
|
||||
endif()
|
||||
if(SDL2PC_LIBRARY_DIRS)
|
||||
set(SDL2_LIB_HINTS ${SDL2PC_LIBRARY_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_library(SDL2_LIBRARY
|
||||
NAMES
|
||||
SDL2
|
||||
HINTS
|
||||
${SDL2_LIB_HINTS}
|
||||
PATHS
|
||||
${SDL2_ROOT_DIR}
|
||||
ENV SDL2DIR
|
||||
PATH_SUFFIXES lib SDL2 ${SDL2_LIB_PATH_SUFFIX})
|
||||
|
||||
set(_sdl2_framework FALSE)
|
||||
# Some special-casing if we've found/been given a framework.
|
||||
# Handles whether we're given the library inside the framework or the framework itself.
|
||||
if(APPLE AND "${SDL2_LIBRARY}" MATCHES "(/[^/]+)*.framework(/.*)?$")
|
||||
set(_sdl2_framework TRUE)
|
||||
set(SDL2_FRAMEWORK "${SDL2_LIBRARY}")
|
||||
# Move up in the directory tree as required to get the framework directory.
|
||||
while("${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework(/.*)$" AND NOT "${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework$")
|
||||
get_filename_component(SDL2_FRAMEWORK "${SDL2_FRAMEWORK}" DIRECTORY)
|
||||
endwhile()
|
||||
if("${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework$")
|
||||
set(SDL2_FRAMEWORK_NAME ${CMAKE_MATCH_1})
|
||||
# If we found a framework, do a search for the header ahead of time that will be more likely to get the framework header.
|
||||
find_path(SDL2_INCLUDE_DIR
|
||||
NAMES
|
||||
SDL_haptic.h # this file was introduced with SDL2
|
||||
HINTS
|
||||
"${SDL2_FRAMEWORK}/Headers/")
|
||||
else()
|
||||
# For some reason we couldn't get the framework directory itself.
|
||||
# Shouldn't happen, but might if something is weird.
|
||||
unset(SDL2_FRAMEWORK)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_path(SDL2_INCLUDE_DIR
|
||||
NAMES
|
||||
SDL_haptic.h # this file was introduced with SDL2
|
||||
HINTS
|
||||
${SDL2_INCLUDE_HINTS}
|
||||
PATHS
|
||||
${SDL2_ROOT_DIR}
|
||||
ENV SDL2DIR
|
||||
PATH_SUFFIXES include include/sdl2 include/SDL2 SDL2)
|
||||
|
||||
if(WIN32 AND SDL2_LIBRARY)
|
||||
find_file(SDL2_RUNTIME_LIBRARY
|
||||
NAMES
|
||||
SDL2.dll
|
||||
libSDL2.dll
|
||||
HINTS
|
||||
${SDL2_LIB_HINTS}
|
||||
PATHS
|
||||
${SDL2_ROOT_DIR}
|
||||
ENV SDL2DIR
|
||||
PATH_SUFFIXES bin lib ${SDL2_LIB_PATH_SUFFIX})
|
||||
endif()
|
||||
|
||||
|
||||
if(WIN32 OR ANDROID OR IOS OR (APPLE AND NOT _sdl2_framework))
|
||||
set(SDL2_EXTRA_REQUIRED SDL2_SDLMAIN_LIBRARY)
|
||||
find_library(SDL2_SDLMAIN_LIBRARY
|
||||
NAMES
|
||||
SDL2main
|
||||
PATHS
|
||||
${SDL2_ROOT_DIR}
|
||||
ENV SDL2DIR
|
||||
PATH_SUFFIXES lib ${SDL2_LIB_PATH_SUFFIX})
|
||||
endif()
|
||||
|
||||
if(MINGW AND NOT SDL2PC_FOUND)
|
||||
find_library(SDL2_MINGW_LIBRARY mingw32)
|
||||
find_library(SDL2_MWINDOWS_LIBRARY mwindows)
|
||||
endif()
|
||||
|
||||
if(SDL2_PREFIX)
|
||||
# Restore things the way they used to be.
|
||||
set(CMAKE_PREFIX_PATH ${SDL2_ORIGPREFIXPATH})
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set QUATLIB_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(SDL2
|
||||
DEFAULT_MSG
|
||||
SDL2_LIBRARY
|
||||
SDL2_INCLUDE_DIR
|
||||
${SDL2_EXTRA_REQUIRED})
|
||||
|
||||
if(SDL2_FOUND)
|
||||
if(NOT TARGET SDL2::SDL2)
|
||||
# Create SDL2::SDL2
|
||||
if(WIN32 AND SDL2_RUNTIME_LIBRARY)
|
||||
set(SDL2_DYNAMIC TRUE)
|
||||
add_library(SDL2::SDL2 SHARED IMPORTED)
|
||||
set_target_properties(SDL2::SDL2
|
||||
PROPERTIES
|
||||
IMPORTED_IMPLIB "${SDL2_LIBRARY}"
|
||||
IMPORTED_LOCATION "${SDL2_RUNTIME_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
|
||||
)
|
||||
else()
|
||||
add_library(SDL2::SDL2 UNKNOWN IMPORTED)
|
||||
if(SDL2_FRAMEWORK AND SDL2_FRAMEWORK_NAME)
|
||||
# Handle the case that SDL2 is a framework and we were able to decompose it above.
|
||||
set_target_properties(SDL2::SDL2 PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_FRAMEWORK}/${SDL2_FRAMEWORK_NAME}")
|
||||
elseif(_sdl2_framework AND SDL2_LIBRARY MATCHES "(/[^/]+)*.framework$")
|
||||
# Handle the case that SDL2 is a framework and SDL_LIBRARY is just the framework itself.
|
||||
|
||||
# This takes the basename of the framework, without the extension,
|
||||
# and sets it (as a child of the framework) as the imported location for the target.
|
||||
# This is the library symlink inside of the framework.
|
||||
set_target_properties(SDL2::SDL2 PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_LIBRARY}/${CMAKE_MATCH_1}")
|
||||
else()
|
||||
# Handle non-frameworks (including non-Mac), as well as the case that we're given the library inside of the framework
|
||||
set_target_properties(SDL2::SDL2 PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_LIBRARY}")
|
||||
endif()
|
||||
set_target_properties(SDL2::SDL2
|
||||
PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
# Need Cocoa here, is always a framework
|
||||
find_library(SDL2_COCOA_LIBRARY Cocoa)
|
||||
list(APPEND SDL2_EXTRA_REQUIRED SDL2_COCOA_LIBRARY)
|
||||
if(SDL2_COCOA_LIBRARY)
|
||||
set_target_properties(SDL2::SDL2 PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LIBRARIES ${SDL2_COCOA_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Compute what to do with SDL2main
|
||||
set(SDL2MAIN_LIBRARIES SDL2::SDL2)
|
||||
add_library(SDL2::SDL2main INTERFACE IMPORTED)
|
||||
if(SDL2_SDLMAIN_LIBRARY)
|
||||
add_library(SDL2::SDL2main_real STATIC IMPORTED)
|
||||
set_target_properties(SDL2::SDL2main_real
|
||||
PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_SDLMAIN_LIBRARY}")
|
||||
set(SDL2MAIN_LIBRARIES SDL2::SDL2main_real ${SDL2MAIN_LIBRARIES})
|
||||
endif()
|
||||
if(MINGW)
|
||||
# MinGW requires some additional libraries to appear earlier in the link line.
|
||||
if(SDL2PC_LIBRARIES)
|
||||
# Use pkgconfig-suggested extra libraries if available.
|
||||
list(REMOVE_ITEM SDL2PC_LIBRARIES SDL2main SDL2)
|
||||
set(SDL2MAIN_LIBRARIES ${SDL2PC_LIBRARIES} ${SDL2MAIN_LIBRARIES})
|
||||
else()
|
||||
# fall back to extra libraries specified in pkg-config in
|
||||
# an official binary distro of SDL2 for MinGW I downloaded
|
||||
if(SDL2_MINGW_LIBRARY)
|
||||
set(SDL2MAIN_LIBRARIES ${SDL2_MINGW_LIBRARY} ${SDL2MAIN_LIBRARIES})
|
||||
endif()
|
||||
if(SDL2_MWINDOWS_LIBRARY)
|
||||
set(SDL2MAIN_LIBRARIES ${SDL2_MWINDOWS_LIBRARY} ${SDL2MAIN_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
set_target_properties(SDL2::SDL2main
|
||||
PROPERTIES
|
||||
INTERFACE_COMPILE_DEFINITIONS "main=SDL_main")
|
||||
endif()
|
||||
set_target_properties(SDL2::SDL2main
|
||||
PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "${SDL2MAIN_LIBRARIES}")
|
||||
endif()
|
||||
mark_as_advanced(SDL2_ROOT_DIR)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(SDL2_LIBRARY
|
||||
SDL2_RUNTIME_LIBRARY
|
||||
SDL2_INCLUDE_DIR
|
||||
SDL2_SDLMAIN_LIBRARY
|
||||
SDL2_COCOA_LIBRARY
|
||||
SDL2_MINGW_LIBRARY
|
||||
SDL2_MWINDOWS_LIBRARY)
|
||||
|
|
@ -155,7 +155,6 @@ else ifneq (,$(findstring armv7h,$(platform)))
|
|||
MFLAGS += -mfpu=neon
|
||||
ASFLAGS += -mfpu=neon
|
||||
endif
|
||||
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
|
||||
USE_GLES := 1
|
||||
|
||||
# LinCPP
|
||||
|
@ -168,7 +167,6 @@ else ifneq (,$(findstring lincpp,$(platform)))
|
|||
|
||||
# Raspberry Pi
|
||||
else ifneq (,$(findstring rpi,$(platform)))
|
||||
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
|
||||
ifneq (,$(findstring rpi2,$(platform)))
|
||||
MFLAGS += -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
|
||||
ASFLAGS += -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
|
||||
|
@ -198,19 +196,17 @@ else ifneq (,$(findstring beagle,$(platform)))
|
|||
CC_PREFIX ?= arm-none-linux-gnueabi-
|
||||
MFLAGS += -marm -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp -funroll-loops
|
||||
ASFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=softfp
|
||||
CFLAGS += -fsingle-precision-constant
|
||||
USE_GLES := 1
|
||||
|
||||
# Pandora
|
||||
else ifneq (,$(findstring pandora,$(platform)))
|
||||
FOR_PANDORA := 1
|
||||
USE_X11 := 1
|
||||
USE_SDL := 1
|
||||
PGO_USE := 1
|
||||
USE_GLES := 1
|
||||
MFLAGS +== -marm -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -funroll-loops -fpermissive
|
||||
MFLAGS += -marm -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -funroll-loops -ftree-vectorize -fomit-frame-pointer
|
||||
ASFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=softfp
|
||||
CFLAGS += -D TARGET_PANDORA -D WEIRD_SLOWNESS -fsingle-precision-constant
|
||||
CFLAGS += -D TARGET_PANDORA -DPANDORA
|
||||
|
||||
# ODROIDs
|
||||
else ifneq (,$(findstring odroid,$(platform)))
|
||||
|
@ -249,7 +245,7 @@ else ifneq (,$(findstring rockchip,$(platform)))
|
|||
MFLAGS += -marm -march=armv8-a+crc -mfpu=neon -mfloat-abi=hard -funroll-loops -mtune=cortex-a53
|
||||
ASFLAGS += -march=armv8-a+crc -mfpu=neon -mfloat-abi=hard
|
||||
CXXFLAGS += -fexceptions
|
||||
CFLAGS += -fsingle-precision-constant -DMESA_EGL_NO_X11_HEADERS=1 -DEGL_NO_X11=1 -fpermissive -fno-builtin-sqrtf
|
||||
CFLAGS += -DMESA_EGL_NO_X11_HEADERS=1 -DEGL_NO_X11=1 -fpermissive -fno-builtin-sqrtf
|
||||
INCS += -I/opt/vc/include/ -I/opt/vc/include/libdrm
|
||||
LIBS += -ldrm -lGLESv2
|
||||
USE_GLES := 1
|
||||
|
@ -266,7 +262,6 @@ else ifneq (,$(findstring vero4k,$(platform)))
|
|||
MFLAGS += -mfpu=neon
|
||||
ASFLAGS += -mfpu=neon
|
||||
endif
|
||||
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
|
||||
INCS += -I/opt/vero3/include/
|
||||
LIBS += -L/opt/vero3/lib/ -lEGL -lGLESv2
|
||||
USE_GLES := 1
|
||||
|
@ -308,7 +303,7 @@ include $(RZDCY_SRC_DIR)/core.mk
|
|||
LDFLAGS += -g -Wl,-Map,$(notdir $@).map,--gc-sections -Wl,-O3 -Wl,--sort-common -fopenmp
|
||||
|
||||
CFLAGS += $(RZDCY_CFLAGS) -g -O3 -D NDEBUG -c -fopenmp #-D NO_REND
|
||||
CFLAGS += -frename-registers -fno-strict-aliasing
|
||||
CFLAGS += -frename-registers -fno-strict-aliasing -fsingle-precision-constant
|
||||
CFLAGS += -ftree-vectorize -Wall -Wno-unused-result
|
||||
|
||||
CXXFLAGS += $(RZDCY_CFLAGS) -fno-rtti -fno-operator-names -D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++11
|
||||
|
|
Loading…
Reference in New Issue