xref: /aosp_15_r20/external/oboe/samples/RhythmGame/CMakeLists.txt (revision 05767d913155b055644481607e6fa1e35e2fe72c)
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