1MACRO(SETUP_ANDROID_LIBRARY LIB_NAME) 2 3 #foreach(arg ${TARGET_LIBRARIES}) 4 # set(MODULE_LIBS "${MODULE_LIBS} -l${arg}") 5 #endforeach(arg ${TARGET_LIBRARIES}) 6 7 foreach(arg ${TARGET_SRC}) 8 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" n_f ${arg}) 9 IF ("${arg}" MATCHES ".*\\.c$" OR "${arg}" MATCHES ".*\\.cpp$") 10 #We only include source files, not header files, this removes anoying warnings 11 set(MODULE_SOURCES "${MODULE_SOURCES} ${n_f}") 12 ENDIF() 13 endforeach(arg ${TARGET_SRC}) 14 15 #SET(MODULE_INCLUDES "${CMAKE_SOURCE_DIR}/include include") 16 GET_DIRECTORY_PROPERTY(loc_includes INCLUDE_DIRECTORIES) 17 foreach(arg ${loc_includes}) 18 IF(NOT "${arg}" MATCHES "/usr/include" AND NOT "${arg}" MATCHES "/usr/local/include") 19 set(MODULE_INCLUDES "${MODULE_INCLUDES} ${arg}") 20 ENDIF() 21 endforeach(arg ${loc_includes}) 22 23 GET_DIRECTORY_PROPERTY(loc_definitions COMPILE_DEFINITIONS) 24 foreach(arg ${loc_definitions}) 25 set(DEFINITIONS "${DEFINITIONS} -D${arg}") 26 endforeach(arg ${loc_definitions}) 27 28 message(STATUS "##############Creating Android Makefile#################") 29 message(STATUS "name: ${LIB_NAME}") 30 31 set(MODULE_NAME ${LIB_NAME}) 32 set(MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 33 set(MODULE_FLAGS_C ${DEFINITIONS}) 34 set(MODULE_FLAGS_CPP ${DEFINITIONS}) 35 #TODO: determine if GLES2 or GLES 36 IF(OSG_GLES1_AVAILABLE) 37 SET(OPENGLES_LIBRARY -lGLESv1_CM) 38 ELSEIF(OSG_GLES2_AVAILABLE) 39 SET(OPENGLES_LIBRARY -lGLESv2) 40 ENDIF() 41 #${MODULE_LIBS} 42 set(MODULE_LIBS_FLAGS "${OPENGLES_LIBRARY} -ldl") 43 if(NOT CPP_EXTENSION) 44 set(CPP_EXTENSION "cpp") 45 endif() 46 IF(NOT MODULE_USER_STATIC_OR_DYNAMIC) 47 MESSAGE(FATAL_ERROR "Not defined MODULE_USER_STATIC_OR_DYNAMIC") 48 ENDIF() 49 IF("MODULE_USER_STATIC_OR_DYNAMIC" MATCHES "STATIC") 50 SET(MODULE_BUILD_TYPE "\$\(BUILD_STATIC_LIBRARY\)") 51 SET(MODULE_LIBS_SHARED " ") 52 SET(MODULE_LIBS_STATIC ${TARGET_LIBRARIES}) 53 ELSE() 54 SET(MODULE_BUILD_TYPE "\$\(BUILD_SHARED_LIBRARY\)") 55 SET(MODULE_LIBS_SHARED ${TARGET_LIBRARIES}) 56 SET(MODULE_LIBS_STATIC " ") 57 ENDIF() 58 set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} ${LIB_NAME}") 59 set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${CMAKE_CURRENT_BINARY_DIR}/Android.mk \n") 60 61 configure_file("${OSG_ANDROID_TEMPLATES}/Android.mk.modules.in" "${CMAKE_CURRENT_BINARY_DIR}/Android.mk") 62 63ENDMACRO() 64 65MACRO(ANDROID_3RD_PARTY) 66 ################################################ 67 #JPEG 68 ################################################ 69 FIND_PATH(JPEG_INCLUDE_DIR Android.mk 70 ${CMAKE_SOURCE_DIR}/3rdparty/libjpeg NO_CMAKE_FIND_ROOT_PATH 71 ) 72 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libjpeg") 73 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${JPEG_INCLUDE_DIR}/Android.mk \n") 74 if(JPEG_INCLUDE_DIR) 75 message(STATUS "Jpeg found ${JPEG_INCLUDE_DIR}" ) 76 set(JPEG_FOUND "Yes") 77 install(DIRECTORY 3rdparty/build/libjpeg/ DESTINATION ./ ) 78 else(JPEG_INCLUDE_DIR) 79 message(STATUS "Jpeg missing" ) 80 endif() 81 ################################################ 82 #PNG 83 ################################################ 84 FIND_PATH(PNG_INCLUDE_DIR Android.mk 85 ${CMAKE_SOURCE_DIR}/3rdparty/libpng NO_CMAKE_FIND_ROOT_PATH 86 ) 87 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libpng") 88 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${PNG_INCLUDE_DIR}/Android.mk \n") 89 if(PNG_INCLUDE_DIR) 90 message(STATUS "PNG found ${PNG_INCLUDE_DIR}" ) 91 set(PNG_FOUND "Yes") 92 install(DIRECTORY 3rdparty/build/libpng/ DESTINATION ./ ) 93 else(PNG_INCLUDE_DIR) 94 message(STATUS "PNG missing" ) 95 endif() 96 ################################################ 97 #GIF 98 ################################################ 99 FIND_PATH(GIFLIB_INCLUDE_DIR Android.mk 100 ${CMAKE_SOURCE_DIR}/3rdparty/giflib NO_CMAKE_FIND_ROOT_PATH 101 ) 102 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libgif") 103 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${GIFLIB_INCLUDE_DIR}/Android.mk \n") 104 if(GIFLIB_INCLUDE_DIR) 105 message(STATUS "GIF found ${GIFLIB_INCLUDE_DIR}" ) 106 set(GIFLIB_FOUND "Yes") 107 install(DIRECTORY 3rdparty/build/giflib/ DESTINATION ./ ) 108 else(GIFLIB_INCLUDE_DIR) 109 message(STATUS "GIF missing" ) 110 endif() 111 ################################################ 112 #TIF 113 ################################################ 114 FIND_PATH(TIFF_INCLUDE_DIR Android.mk 115 ${CMAKE_SOURCE_DIR}/3rdparty/libtiff NO_CMAKE_FIND_ROOT_PATH 116 ) 117 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libtiff") 118 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${TIFF_INCLUDE_DIR}/Android.mk \n") 119 if(TIFF_INCLUDE_DIR) 120 message(STATUS "TIF found ${TIFF_INCLUDE_DIR}" ) 121 set(TIFF_FOUND "Yes") 122 install(DIRECTORY 3rdparty/build/libtiff/ DESTINATION ./ ) 123 else(TIFF_INCLUDE_DIR) 124 message(STATUS "TIF missing" ) 125 endif() 126 ################################################ 127 #ZLIB 128 ################################################ 129 #FIND_PATH(ZLIB_INCLUDE_DIR Android.mk 130 # ${CMAKE_SOURCE_DIR}/3rdparty/zlib 131 #) 132 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} zlib") 133 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${ZLIB_INCLUDE_DIR}/Android.mk \n") 134 #if(ZLIB_INCLUDE_DIR) 135 # message(STATUS "ZLIB found ${ZLIB_INCLUDE_DIR}" ) 136 # set(ZLIB_FOUND "Yes") 137 # install(DIRECTORY 3rdparty/build/libjpeg/ DESTINATION ./ ) 138 #else(ZLIB_INCLUDE_DIR) 139 # message(STATUS "ZLIB missing" ) 140 #endif() 141 ################################################ 142 #CURL 143 ################################################ 144 FIND_PATH(CURL_DIR Android.mk 145 ${CMAKE_SOURCE_DIR}/3rdparty/curl NO_CMAKE_FIND_ROOT_PATH 146 ) 147 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libcurl") 148 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${CURL_DIR}/Android.mk \n") 149 set(CURL_INCLUDE_DIR ${CURL_DIR}/include) 150 set(CURL_INCLUDE_DIRS ${CURL_DIR}/include) #Both are defined in FindCurl 151 if(CURL_DIR) 152 message(STATUS "Curl found ${CURL_DIR}" ) 153 set(CURL_FOUND "Yes") 154 install(DIRECTORY 3rdparty/build/curl/ DESTINATION ./ ) 155 else(CURL_DIR) 156 message(STATUS "Curl missing" ) 157 endif() 158 ################################################ 159 #FREETYPE 160 ################################################ 161 FIND_PATH(FREETYPE_DIR Android.mk 162 ${CMAKE_SOURCE_DIR}/3rdparty/freetype NO_CMAKE_FIND_ROOT_PATH 163 ) 164 #set(ENV{AND_OSG_LIB_NAMES} "$ENV{AND_OSG_LIB_NAMES} libft2") 165 #set(ENV{AND_OSG_LIB_PATHS} "$ENV{AND_OSG_LIB_PATHS}include ${FREETYPE_DIR}/Android.mk \n") 166 set(FREETYPE_INCLUDE_DIRS ${FREETYPE_DIR}/include ${FREETYPE_DIR}/include/freetype/config) 167 if(FREETYPE_DIR) 168 message(STATUS "FREETYPE found ${FREETYPE_DIR}" ) 169 set(FREETYPE_FOUND "Yes") 170 install(DIRECTORY 3rdparty/build/freetype/ DESTINATION ./ ) 171 else(FREETYPE_DIR) 172 message(STATUS "FREETYPE missing" ) 173 endif() 174 ################################################ 175 #GDAL 176 ################################################ 177 FIND_PATH(GDAL_DIR gdal.h 178 ${CMAKE_SOURCE_DIR}/3rdparty/gdal/include NO_CMAKE_FIND_ROOT_PATH 179 ) 180 set(GDAL_INCLUDE_DIR "${GDAL_DIR}") 181 if(GDAL_DIR) 182 message(STATUS "GDAL found ${GDAL_DIR}" ) 183 set(GDAL_FOUND "Yes") 184 install(DIRECTORY 3rdparty/build/gdal/ DESTINATION ./ ) 185 else(GDAL_DIR) 186 message(STATUS "GDAL missing" ) 187 endif() 188ENDMACRO() 189