/ CMakeModules / AndroidNdkModules.cmake
AndroidNdkModules.cmake
 1  # Copyright (c) 2014, Pavel Rojtberg
 2  # All rights reserved.
 3  #
 4  # Redistribution and use in source and binary forms, with or without
 5  # modification, are permitted provided that the following conditions are met:
 6  #
 7  # 1. Redistributions of source code must retain the above copyright notice,
 8  # this list of conditions and the following disclaimer.
 9  #
10  # 2. Redistributions in binary form must reproduce the above copyright notice,
11  # this list of conditions and the following disclaimer in the documentation
12  # and/or other materials provided with the distribution.
13  #
14  # 3. Neither the name of the copyright holder nor the names of its
15  # contributors may be used to endorse or promote products derived from this
16  # software without specific prior written permission.
17  #
18  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  # POSSIBILITY OF SUCH DAMAGE.
29  
30  macro(android_ndk_import_module_cpufeatures)
31      if(ANDROID)
32          include_directories(${ANDROID_NDK}/sources/android/cpufeatures)
33          add_library(cpufeatures ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c)
34          target_link_libraries(cpufeatures dl)
35      endif()
36  endmacro()
37  
38  macro(android_ndk_import_module_native_app_glue)
39      if(ANDROID)
40          include_directories(${ANDROID_NDK}/sources/android/native_app_glue)
41          add_library(native_app_glue ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
42          target_link_libraries(native_app_glue log)
43      endif()
44  endmacro()
45  
46  macro(android_ndk_import_module_ndk_helper)
47      if(ANDROID)
48          android_ndk_import_module_cpufeatures()
49          android_ndk_import_module_native_app_glue()
50  
51          include_directories(${ANDROID_NDK}/sources/android/ndk_helper)
52          file(GLOB _NDK_HELPER_SRCS ${ANDROID_NDK}/sources/android/ndk_helper/*.cpp ${ANDROID_NDK}/sources/android/ndk_helper/gl3stub.c)
53          add_library(ndk_helper ${_NDK_HELPER_SRCS})
54          target_link_libraries(ndk_helper log android EGL GLESv2 cpufeatures native_app_glue)
55  
56          unset(_NDK_HELPER_SRCS)
57      endif()
58  endmacro()