1*05767d91SRobert Wucmake_minimum_required(VERSION 3.4.1) 2*05767d91SRobert Wu 3*05767d91SRobert Wu# Set the name of the project and store it in PROJECT_NAME. Also set the following variables: 4*05767d91SRobert Wu# PROJECT_SOURCE_DIR (usually the root directory where Oboe has been cloned e.g.) 5*05767d91SRobert Wu# PROJECT_BINARY_DIR (usually the containing project's binary directory, 6*05767d91SRobert Wu# e.g. ${OBOE_HOME}/samples/RhythmGame/.externalNativeBuild/cmake/ndkExtractorDebug/x86/oboe-bin) 7*05767d91SRobert Wuproject(oboe) 8*05767d91SRobert Wu 9*05767d91SRobert Wuset (oboe_sources 10*05767d91SRobert Wu src/aaudio/AAudioLoader.cpp 11*05767d91SRobert Wu src/aaudio/AudioStreamAAudio.cpp 12*05767d91SRobert Wu src/common/AdpfWrapper.cpp 13*05767d91SRobert Wu src/common/AudioSourceCaller.cpp 14*05767d91SRobert Wu src/common/AudioStream.cpp 15*05767d91SRobert Wu src/common/AudioStreamBuilder.cpp 16*05767d91SRobert Wu src/common/DataConversionFlowGraph.cpp 17*05767d91SRobert Wu src/common/FilterAudioStream.cpp 18*05767d91SRobert Wu src/common/FixedBlockAdapter.cpp 19*05767d91SRobert Wu src/common/FixedBlockReader.cpp 20*05767d91SRobert Wu src/common/FixedBlockWriter.cpp 21*05767d91SRobert Wu src/common/LatencyTuner.cpp 22*05767d91SRobert Wu src/common/OboeExtensions.cpp 23*05767d91SRobert Wu src/common/SourceFloatCaller.cpp 24*05767d91SRobert Wu src/common/SourceI16Caller.cpp 25*05767d91SRobert Wu src/common/SourceI24Caller.cpp 26*05767d91SRobert Wu src/common/SourceI32Caller.cpp 27*05767d91SRobert Wu src/common/Utilities.cpp 28*05767d91SRobert Wu src/common/QuirksManager.cpp 29*05767d91SRobert Wu src/fifo/FifoBuffer.cpp 30*05767d91SRobert Wu src/fifo/FifoController.cpp 31*05767d91SRobert Wu src/fifo/FifoControllerBase.cpp 32*05767d91SRobert Wu src/fifo/FifoControllerIndirect.cpp 33*05767d91SRobert Wu src/flowgraph/FlowGraphNode.cpp 34*05767d91SRobert Wu src/flowgraph/ChannelCountConverter.cpp 35*05767d91SRobert Wu src/flowgraph/ClipToRange.cpp 36*05767d91SRobert Wu src/flowgraph/Limiter.cpp 37*05767d91SRobert Wu src/flowgraph/ManyToMultiConverter.cpp 38*05767d91SRobert Wu src/flowgraph/MonoBlend.cpp 39*05767d91SRobert Wu src/flowgraph/MonoToMultiConverter.cpp 40*05767d91SRobert Wu src/flowgraph/MultiToManyConverter.cpp 41*05767d91SRobert Wu src/flowgraph/MultiToMonoConverter.cpp 42*05767d91SRobert Wu src/flowgraph/RampLinear.cpp 43*05767d91SRobert Wu src/flowgraph/SampleRateConverter.cpp 44*05767d91SRobert Wu src/flowgraph/SinkFloat.cpp 45*05767d91SRobert Wu src/flowgraph/SinkI16.cpp 46*05767d91SRobert Wu src/flowgraph/SinkI24.cpp 47*05767d91SRobert Wu src/flowgraph/SinkI32.cpp 48*05767d91SRobert Wu src/flowgraph/SinkI8_24.cpp 49*05767d91SRobert Wu src/flowgraph/SourceFloat.cpp 50*05767d91SRobert Wu src/flowgraph/SourceI16.cpp 51*05767d91SRobert Wu src/flowgraph/SourceI24.cpp 52*05767d91SRobert Wu src/flowgraph/SourceI32.cpp 53*05767d91SRobert Wu src/flowgraph/SourceI8_24.cpp 54*05767d91SRobert Wu src/flowgraph/resampler/IntegerRatio.cpp 55*05767d91SRobert Wu src/flowgraph/resampler/LinearResampler.cpp 56*05767d91SRobert Wu src/flowgraph/resampler/MultiChannelResampler.cpp 57*05767d91SRobert Wu src/flowgraph/resampler/PolyphaseResampler.cpp 58*05767d91SRobert Wu src/flowgraph/resampler/PolyphaseResamplerMono.cpp 59*05767d91SRobert Wu src/flowgraph/resampler/PolyphaseResamplerStereo.cpp 60*05767d91SRobert Wu src/flowgraph/resampler/SincResampler.cpp 61*05767d91SRobert Wu src/flowgraph/resampler/SincResamplerStereo.cpp 62*05767d91SRobert Wu src/opensles/AudioInputStreamOpenSLES.cpp 63*05767d91SRobert Wu src/opensles/AudioOutputStreamOpenSLES.cpp 64*05767d91SRobert Wu src/opensles/AudioStreamBuffered.cpp 65*05767d91SRobert Wu src/opensles/AudioStreamOpenSLES.cpp 66*05767d91SRobert Wu src/opensles/EngineOpenSLES.cpp 67*05767d91SRobert Wu src/opensles/OpenSLESUtilities.cpp 68*05767d91SRobert Wu src/opensles/OutputMixerOpenSLES.cpp 69*05767d91SRobert Wu src/common/StabilizedCallback.cpp 70*05767d91SRobert Wu src/common/Trace.cpp 71*05767d91SRobert Wu src/common/Version.cpp 72*05767d91SRobert Wu ) 73*05767d91SRobert Wu 74*05767d91SRobert Wuadd_library(oboe ${oboe_sources}) 75*05767d91SRobert Wu 76*05767d91SRobert Wu# Specify directories which the compiler should look for headers 77*05767d91SRobert Wutarget_include_directories(oboe 78*05767d91SRobert Wu PRIVATE src 79*05767d91SRobert Wu PUBLIC include) 80*05767d91SRobert Wu 81*05767d91SRobert Wu# Compile Flags: 82*05767d91SRobert Wu# Enable -Werror when building debug config 83*05767d91SRobert Wu# Enable -Ofast 84*05767d91SRobert Wutarget_compile_options(oboe 85*05767d91SRobert Wu PRIVATE 86*05767d91SRobert Wu -std=c++17 87*05767d91SRobert Wu -Wall 88*05767d91SRobert Wu -Wextra-semi 89*05767d91SRobert Wu -Wshadow 90*05767d91SRobert Wu -Wshadow-field 91*05767d91SRobert Wu "$<$<CONFIG:RELEASE>:-Ofast>" 92*05767d91SRobert Wu "$<$<CONFIG:DEBUG>:-O3>" 93*05767d91SRobert Wu "$<$<CONFIG:DEBUG>:-Werror>") 94*05767d91SRobert Wu 95*05767d91SRobert Wu# Enable logging of D,V for debug builds 96*05767d91SRobert Wutarget_compile_definitions(oboe PUBLIC $<$<CONFIG:DEBUG>:OBOE_ENABLE_LOGGING=1>) 97*05767d91SRobert Wu 98*05767d91SRobert Wutarget_link_libraries(oboe PRIVATE log OpenSLES) 99*05767d91SRobert Wu 100*05767d91SRobert Wu# When installing oboe put the libraries in the lib/<ABI> folder e.g. lib/arm64-v8a 101*05767d91SRobert Wuinstall(TARGETS oboe 102*05767d91SRobert Wu LIBRARY DESTINATION lib/${ANDROID_ABI} 103*05767d91SRobert Wu ARCHIVE DESTINATION lib/${ANDROID_ABI}) 104*05767d91SRobert Wu 105*05767d91SRobert Wu# Also install the headers 106*05767d91SRobert Wuinstall(DIRECTORY include/oboe DESTINATION include) 107