1*05767d91SRobert Wucmake_minimum_required(VERSION 3.4.1) 2*05767d91SRobert Wu 3*05767d91SRobert Wuinclude_directories(third_party) 4*05767d91SRobert Wu 5*05767d91SRobert Wuinclude_directories(src/main/cpp/) 6*05767d91SRobert Wu 7*05767d91SRobert Wuadd_library( native-lib 8*05767d91SRobert Wu SHARED 9*05767d91SRobert Wu 10*05767d91SRobert Wu # main game files 11*05767d91SRobert Wu src/main/cpp/native-lib.cpp 12*05767d91SRobert Wu src/main/cpp/Game.cpp 13*05767d91SRobert Wu 14*05767d91SRobert Wu # audio engine 15*05767d91SRobert Wu src/main/cpp/audio/AAssetDataSource.cpp 16*05767d91SRobert Wu src/main/cpp/audio/Player.cpp 17*05767d91SRobert Wu 18*05767d91SRobert Wu # UI engine 19*05767d91SRobert Wu src/main/cpp/ui/OpenGLFunctions.cpp 20*05767d91SRobert Wu 21*05767d91SRobert Wu # utility functions 22*05767d91SRobert Wu src/main/cpp/utils/logging.h 23*05767d91SRobert Wu src/main/cpp/utils/UtilityFunctions.cpp 24*05767d91SRobert Wu 25*05767d91SRobert Wu ) 26*05767d91SRobert Wu 27*05767d91SRobert Wuset (TARGET_LIBS log android oboe GLESv2) 28*05767d91SRobert Wu 29*05767d91SRobert Wuif(${USE_FFMPEG}) 30*05767d91SRobert Wu 31*05767d91SRobert Wu MESSAGE(STATUS "Using FFmpeg extractor") 32*05767d91SRobert Wu 33*05767d91SRobert Wu add_definitions(-DUSE_FFMPEG=1) 34*05767d91SRobert Wu target_sources( native-lib PRIVATE src/main/cpp/audio/FFMpegExtractor.cpp ) 35*05767d91SRobert Wu 36*05767d91SRobert Wu # Add the local path to FFmpeg, you can use the ${ANDROID_ABI} variable to specify the ABI name 37*05767d91SRobert Wu # e.g. /Users/donturner/Code/ffmpeg/build/${ANDROID_ABI} 38*05767d91SRobert Wu set(FFMPEG_DIR "/path/to/ffmpeg") 39*05767d91SRobert Wu 40*05767d91SRobert Wu include_directories(native-lib ${FFMPEG_DIR}/include) 41*05767d91SRobert Wu 42*05767d91SRobert Wu add_library( avformat SHARED IMPORTED) 43*05767d91SRobert Wu set_target_properties(avformat PROPERTIES IMPORTED_LOCATION 44*05767d91SRobert Wu ${FFMPEG_DIR}/lib/libavformat.so) 45*05767d91SRobert Wu add_library( avutil SHARED IMPORTED) 46*05767d91SRobert Wu set_target_properties(avutil PROPERTIES IMPORTED_LOCATION 47*05767d91SRobert Wu ${FFMPEG_DIR}/lib/libavutil.so) 48*05767d91SRobert Wu add_library( avcodec SHARED IMPORTED) 49*05767d91SRobert Wu set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION 50*05767d91SRobert Wu ${FFMPEG_DIR}/lib/libavcodec.so) 51*05767d91SRobert Wu add_library( swresample SHARED IMPORTED) 52*05767d91SRobert Wu set_target_properties(swresample PROPERTIES IMPORTED_LOCATION 53*05767d91SRobert Wu ${FFMPEG_DIR}/lib/libswresample.so) 54*05767d91SRobert Wu set (TARGET_LIBS ${TARGET_LIBS} avformat avutil avcodec swresample) 55*05767d91SRobert Wu 56*05767d91SRobert Wuelse() 57*05767d91SRobert Wu MESSAGE(STATUS "Using NDK media extractor") 58*05767d91SRobert Wu add_definitions(-DUSE_FFMPEG=0) 59*05767d91SRobert Wu target_sources( native-lib PRIVATE src/main/cpp/audio/NDKExtractor.cpp ) 60*05767d91SRobert Wu set (TARGET_LIBS ${TARGET_LIBS} mediandk) 61*05767d91SRobert Wuendif() 62*05767d91SRobert Wu 63*05767d91SRobert Wutarget_link_libraries( native-lib ${TARGET_LIBS} ) 64*05767d91SRobert Wu 65*05767d91SRobert Wu 66*05767d91SRobert Wu# Set the path to the Oboe directory. 67*05767d91SRobert Wuset (OBOE_DIR ../..) 68*05767d91SRobert Wu 69*05767d91SRobert Wu# Add the Oboe library as a subdirectory in your project. 70*05767d91SRobert Wuadd_subdirectory (${OBOE_DIR} ./oboe-bin) 71*05767d91SRobert Wu 72*05767d91SRobert Wu# Specify the path to the Oboe header files. 73*05767d91SRobert Wuinclude_directories (${OBOE_DIR}/include ${OBOE_DIR}/samples) 74*05767d91SRobert Wu 75*05767d91SRobert Wu# Enable optimization flags: if having problems with source level debugging, 76*05767d91SRobert Wu# disable -Ofast ( and debug ), re-enable after done debugging. 77*05767d91SRobert Wutarget_compile_options(native-lib 78*05767d91SRobert Wu PRIVATE -std=c++17 -Wall -Werror "$<$<CONFIG:RELEASE>:-Ofast>") 79