Android: Updated the toolchain file and CMake scripts
* Replaced the toolchain file with a new version based on [zuhowei's fork](https://github.com/zhuowei/android-cmake), which enables x64 builds as well as support for the latest NDK. This breaks compatibility with old build directories. * Removed the STL dependency from **sfml-activity** rather than relying on *some* implementation implicitly linked by default. * Deleted *project.properties*, which wasn't supposed to be part of the repository code. You have to use the Android SDK to recreate it (`android update project --path to/your/example --target 1 --name SFML-Example`). * Made it possible to select a STL implementation to be used (default: `c++_shared`). Keep in mind that not all available configurations are necessarily compatible with SFML. * Fixed linker flags to be compatible with Nvidia's Nsight Tegra for Visual Studio. * It is now possible to compile the Android version using Nvidia's Nsight Tegra for Visual Studio (requires up-to-date CMake and `CMAKE_SFML_SYSTEM` to be set to `Android`; keep in mind that this is still experimental and requires further CMake updates). * Updated and renamed some Android specific CMake variables. * Made `armeabi-v7a` the default ABI for Android builds.
This commit is contained in:
parent
1de7644277
commit
34692d5a39
11 changed files with 1307 additions and 677 deletions
|
@ -98,9 +98,9 @@ macro(sfml_add_library target)
|
|||
if (${target} MATCHES "sfml-activity")
|
||||
set_target_properties(${target} PROPERTIES COMPILE_FLAGS -fpermissive)
|
||||
set_target_properties(${target} PROPERTIES LINK_FLAGS "-landroid -llog")
|
||||
set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY_WITHOUT_STLPORT})
|
||||
set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY_WITHOUT_STL})
|
||||
else()
|
||||
set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY_WITH_STLPORT})
|
||||
set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY_WITH_STL})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -176,3 +176,28 @@ macro(sfml_add_example target)
|
|||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
# this is the same as in the toolchain file, which is here for Nsight Tegra VS
|
||||
# since it won't use the Android toolchain file
|
||||
if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
|
||||
macro(find_host_package)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(WIN32 1)
|
||||
set(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
set(APPLE 1)
|
||||
set(UNIX)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
set(WIN32)
|
||||
set(APPLE)
|
||||
set(UNIX 1)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
endmacro()
|
||||
endif()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue