How to set compiler flags for building Urho3D (Android Build)

I’m not familiar with Cmake, how do we set the compiler flags for building Urho3D or Urho3D android projects? I’ve tried modifying CMakeLists.txt by adding set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -O3”) and add_definitions("-O3"), it does not seem to be working.

1 Like

You can use cmake_android.sh or cmake_android.bat (main Urho3D folder). Or you can invoke command manually:

cmake -DCMAKE_TOOLCHAIN_FILE=Urho3D/CMake/Toolchains/Android.cmake -DANDROID=1 -DANDROID_NATIVE_API_LEVEL=android-21 -DANDROID_ABI=armeabi

Make sure you have two environment variables pointing to android SDK and NDK:

ANDROID_NDK=/path/to/android-ndk-r13b
ANDROID_SDK=/path/to/android-sdk-linux

Now i do not remember for sure but PATH environment variable might need /path/to/android-sdk-linux/platform-tools.

More info in docs.

Thank you for your response. Just to clarify, How if I want to set the compiler’s level of optimisation(for exp, set to -O3)? could I just append -O3 at the end of the command?

You may use -DCMAKE_BUILD_TYPE=Release in case you want a release build. To set specific flags you should add set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") (and maybe set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3") for C code) in appropriate place.

Thanks a lot for your help, it’s very helpful. What is the default CPU optimization level for Release mode for Urho3D Android build?

Release build configuration uses -O3.

ok, thanks! If this is the case i just need to use “-DCMAKE_BUILD_TYPE=Release”

Actually Release is the default.