123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- cmake_minimum_required(VERSION 3.10)
- project(retroarch-activity LANGUAGES C CXX)
- option(HAVE_NEON "Enable NEON" ON)
- option(HAVE_FILE_LOGGER "Enable File Logger" ON)
- option(HAVE_OPENGLES3 "Enable OpenGL ES 3" OFF)
- # 添加可执行文件或库
- add_library(retroarch-activity SHARED
- ${CMAKE_SOURCE_DIR}/griffin/griffin.c
- ${CMAKE_SOURCE_DIR}/griffin/griffin_cpp.cpp)
- # 添加定义
- execute_process(
- COMMAND git rev-parse --short HEAD
- RESULT_VARIABLE GIT_RESULT
- OUTPUT_VARIABLE GIT_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if (GIT_RESULT EQUAL 0)
- target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_GIT_VERSION GIT_VERSION="${GIT_VERSION}")
- endif ()
- if (${CMAKE_ANDROID_ARCH} STREQUAL "arm")
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_ARM)
- set(LOCAL_ARM_MODE "arm")
- endif ()
- if (${CMAKE_ANDROID_ARCH} STREQUAL "x86")
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_X86 HAVE_SSSE3)
- endif ()
- if (${CMAKE_ANDROID_ARCH} STREQUAL "x86_64")
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_X64)
- endif ()
- if (${CMAKE_ANDROID_ARCH} STREQUAL "mips")
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_MIPS __mips__ __MIPSEL__)
- endif ()
- if (${CMAKE_ANDROID_ARCH_ABI} STREQUAL "armeabi-v7a")
- if (HAVE_NEON)
- target_compile_definitions(${PROJECT_NAME} PRIVATE __ARM_NEON__ HAVE_NEON)
- endif ()
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_ARM_V7)
- endif ()
- if (${CMAKE_ANDROID_ARCH_ABI} STREQUAL "arm64-v8a")
- target_compile_definitions(${PROJECT_NAME} PRIVATE ANDROID_AARCH64)
- endif ()
- if (HAVE_OPENGLES3 EQUAL 3)
- target_link_libraries(${PROJECT_NAME} PRIVATE GLESv3)
- target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_OPENGLES3)
- else ()
- target_link_libraries(${PROJECT_NAME} PRIVATE GLESv2)
- target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_OPENGLES2)
- endif ()
- target_compile_definitions(${PROJECT_NAME} PRIVATE
- RARCH_MOBILE
- HAVE_GRIFFIN
- # HAVE_STB_VORBIS
- ANDROID
- HAVE_DYNAMIC
- HAVE_OPENGL
- # HAVE_OVERLAY
- HAVE_OPENGLES
- # GLSL_DEBUG
- HAVE_DYLIB
- HAVE_EGL
- HAVE_GLSL
- # HAVE_MENU
- HAVE_CONFIGFILE
- HAVE_PATCH
- HAVE_DSP_FILTER
- HAVE_VIDEO_FILTER
- HAVE_SCREENSHOTS
- HAVE_REWIND
- # HAVE_CHEATS
- # HAVE_RGUI
- HAVE_ZLIB
- HAVE_NO_BUILTINZLIB
- HAVE_RPNG
- HAVE_RJPEG
- HAVE_RBMP
- HAVE_RTGA
- INLINE=inline
- HAVE_THREADS
- __LIBRETRO__
- HAVE_RSOUND
- # HAVE_NETWORKGAMEPAD
- # HAVE_NETWORKING
- # HAVE_IFINFO
- # HAVE_NETPLAYDISCOVERY
- RARCH_INTERNAL
- HAVE_FILTERS_BUILTIN
- # HAVE_MATERIALUI
- # HAVE_XMB
- # HAVE_OZONE
- # HAVE_SHADERPIPELINE
- HAVE_LIBRETRODB
- # HAVE_STB_FONT
- HAVE_IMAGEVIEWER
- # HAVE_ONLINE_UPDATER
- # HAVE_UPDATE_ASSETS
- # HAVE_UPDATE_CORES
- # HAVE_UPDATE_CORE_INFO
- HAVE_CC_RESAMPLER
- HAVE_KEYMAPPER
- # HAVE_NETWORKGAMEPAD
- HAVE_FLAC
- HAVE_DR_FLAC
- HAVE_DR_MP3
- HAVE_CHD
- WANT_SUBCODE
- WANT_RAW_DATA_SECTOR
- HAVE_RUNAHEAD
- ENABLE_HLSL
- HAVE_AUDIOMIXER
- HAVE_RWAV
- # WANT_IFADDRS
- HAVE_CORE_INFO_CACHE)
- target_compile_definitions(${PROJECT_NAME} PRIVATE
- HAVE_7ZIP
- _7ZIP_ST
- HAVE_SL)
- target_compile_definitions(${PROJECT_NAME} PRIVATE
- FLAC_PACKAGE_VERSION="retroarch"
- HAVE_LROUND
- FLAC__HAS_OGG=0)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99 -pthread -Wno-unused-function -fno-stack-protector -funroll-loops")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -fpermissive -std=gnu++11 -fno-rtti -Wno-reorder")
- target_link_libraries(${PROJECT_NAME} PRIVATE android EGL log dl)
- target_include_directories(${PROJECT_NAME} PRIVATE
- libretro-common/include
- deps
- deps/stb
- deps/7zip
- deps/libFLAC/include)
- target_link_libraries(${PROJECT_NAME} PRIVATE OpenSLES z)
- if (SAMOTOZER)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=$(SANITIZER) -fno-omit-frame-pointer -Wmissing-braces")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=$(SANITIZER) -fno-omit-frame-pointer")
- target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=${SANITIZER})
- endif ()
|