Fixed Android.mk file generation
This commit is contained in:
parent
822b0bfe22
commit
f60bdb2473
@ -24,29 +24,6 @@ else()
|
|||||||
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
|
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# SUBDIRECTORIES:
|
|
||||||
# Save libs and executables in the same place
|
|
||||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )
|
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Output directory for applications" )
|
|
||||||
|
|
||||||
if(ANDROID)
|
|
||||||
set(OPENCV_DOC_INSTALL_PATH doc)
|
|
||||||
elseif(WIN32)
|
|
||||||
set(OPENCV_DOC_INSTALL_PATH doc)
|
|
||||||
else()
|
|
||||||
set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ANDROID)
|
|
||||||
set(OPENCV_LIB_INSTALL_PATH libs/${ARMEABI_NDK_NAME})
|
|
||||||
else()
|
|
||||||
set(OPENCV_LIB_INSTALL_PATH lib)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# build configuration
|
|
||||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
|
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
||||||
|
|
||||||
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
|
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
|
||||||
if(DEFINED CMAKE_BUILD_TYPE)
|
if(DEFINED CMAKE_BUILD_TYPE)
|
||||||
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
||||||
@ -76,11 +53,32 @@ endif()
|
|||||||
project(OpenCV)
|
project(OpenCV)
|
||||||
cmake_minimum_required(VERSION 2.4)
|
cmake_minimum_required(VERSION 2.4)
|
||||||
|
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# SUBDIRECTORIES:
|
||||||
|
# Save libs and executables in the same place
|
||||||
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )
|
||||||
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Output directory for applications" )
|
||||||
|
|
||||||
|
if(ANDROID)
|
||||||
|
set(OPENCV_DOC_INSTALL_PATH doc)
|
||||||
|
elseif(WIN32)
|
||||||
|
set(OPENCV_DOC_INSTALL_PATH doc)
|
||||||
|
else()
|
||||||
|
set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ANDROID)
|
||||||
|
set(OPENCV_LIB_INSTALL_PATH libs/${ARMEABI_NDK_NAME})
|
||||||
|
else()
|
||||||
|
set(OPENCV_LIB_INSTALL_PATH lib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
|
||||||
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
# in case of cross compilation this macro will search packages
|
# in case of cross compilation this macro will search packages
|
||||||
# for host system instead of packages for target system
|
# for host system instead of packages for target system
|
||||||
if(NOT COMMAND find_host_package)
|
if(NOT COMMAND find_host_package)
|
||||||
@ -1202,7 +1200,6 @@ if(ANDROID)
|
|||||||
else()
|
else()
|
||||||
SET(OPENCV_LIBTYPE_CONFIGMAKE "STATIC")
|
SET(OPENCV_LIBTYPE_CONFIGMAKE "STATIC")
|
||||||
endif()
|
endif()
|
||||||
if(ARMEABI_V7A)
|
|
||||||
if(BUILD_ANDROID_CAMERA_WRAPPER)
|
if(BUILD_ANDROID_CAMERA_WRAPPER)
|
||||||
set(CMAKE_CAMERA_LIBS_CONFIGCMAKE "native_camera_r${ANDROID_VERSION}")
|
set(CMAKE_CAMERA_LIBS_CONFIGCMAKE "native_camera_r${ANDROID_VERSION}")
|
||||||
else()
|
else()
|
||||||
@ -1214,16 +1211,16 @@ if(ANDROID)
|
|||||||
SET(CMAKE_CAMERA_LIBS_CONFIGCMAKE "${CMAKE_CAMERA_LIBS_CONFIGCMAKE} ${cam_lib}")
|
SET(CMAKE_CAMERA_LIBS_CONFIGCMAKE "${CMAKE_CAMERA_LIBS_CONFIGCMAKE} ${cam_lib}")
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
endif(ANDROID)
|
endif(ANDROID)
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
# Part 1/2: ${BIN_DIR}/OpenCV.mk -> For use *without* "make install"
|
# Part 1/2: ${BIN_DIR}/OpenCV.mk -> For use *without* "make install"
|
||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\$(RELATIVE_PREFIX)${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"\$(RELATIVE_PREFIX)${CMAKE_CURRENT_SOURCE_DIR}/include\" \"\$(RELATIVE_PREFIX)${CMAKE_CURRENT_SOURCE_DIR}/include/opencv\"")
|
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${CMAKE_CURRENT_SOURCE_DIR}/include\" \"${CMAKE_CURRENT_SOURCE_DIR}/include/opencv\"")
|
||||||
set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"\$(RELATIVE_PREFIX)${CMAKE_CURRENT_SOURCE_DIR}\"")
|
set(CMAKE_BASE_INCLUDE_DIR_CONFIGCMAKE "\"${CMAKE_CURRENT_SOURCE_DIR}\"")
|
||||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\$(RELATIVE_PREFIX)${LIBRARY_OUTPUT_PATH}")
|
set(CMAKE_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)")
|
||||||
|
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/OpenCV.mk" IMMEDIATE @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/OpenCV.mk" IMMEDIATE @ONLY)
|
||||||
endif(ANDROID)
|
endif(ANDROID)
|
||||||
|
|
||||||
@ -1231,9 +1228,10 @@ endif(ANDROID)
|
|||||||
# Part 2/2: ${BIN_DIR}/unix-install/OpenCV.mk -> For use with "make install"
|
# Part 2/2: ${BIN_DIR}/unix-install/OpenCV.mk -> For use with "make install"
|
||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../../include/opencv \$(OPENCV_THIS_DIR)/../../include")
|
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/../../include/opencv\" \"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/../../include\"")
|
||||||
set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "")
|
set(CMAKE_BASE_INCLUDE_DIR_CONFIGCMAKE "")
|
||||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../../lib")
|
set(CMAKE_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../..")
|
||||||
|
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" IMMEDIATE @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" IMMEDIATE @ONLY)
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION share/OpenCV/)
|
install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION share/OpenCV/)
|
||||||
endif(ANDROID)
|
endif(ANDROID)
|
||||||
|
34
OpenCV.mk.in
34
OpenCV.mk.in
@ -1,41 +1,48 @@
|
|||||||
RELATIVE_PREFIX:=.$(shell echo $(abspath $(LOCAL_PATH))| sed -e "s/\/[^\/]*/\/../g" )
|
USER_LOCAL_PATH:=$(LOCAL_PATH)
|
||||||
OPENCV_THIS_DIR:=$(RELATIVE_PREFIX)$(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
LOCAL_PATH:=$(subst ?,,$(firstword ?$(subst \\, ,$(subst /, ,$(call my-dir)))))
|
||||||
OPENCV_LIBS_DIR:=@CMAKE_LIB_DIRS_CONFIGCMAKE@
|
|
||||||
OPENCV_BASEDIR:=@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@
|
OPENCV_THIS_DIR:=$(patsubst $(LOCAL_PATH)\\%,%,$(patsubst $(LOCAL_PATH)/%,%,$(call my-dir)))
|
||||||
|
OPENCV_LIBS_DIR:=@CMAKE_LIBS_DIR_CONFIGCMAKE@
|
||||||
|
OPENCV_BASEDIR:=@CMAKE_BASE_INCLUDE_DIR_CONFIGCMAKE@
|
||||||
OPENCV_LOCAL_C_INCLUDES:=@CMAKE_INCLUDE_DIRS_CONFIGCMAKE@
|
OPENCV_LOCAL_C_INCLUDES:=@CMAKE_INCLUDE_DIRS_CONFIGCMAKE@
|
||||||
|
|
||||||
OPENCV_MODULES := contrib calib3d objdetect features2d imgproc video highgui ml legacy flann core
|
OPENCV_MODULES := contrib calib3d objdetect features2d imgproc video highgui ml legacy flann core
|
||||||
|
|
||||||
|
ifeq ($(TARGET_ARCH_ABI),armeabi)
|
||||||
|
OPENCV_CAMERA_MODULES:=
|
||||||
|
else
|
||||||
|
OPENCV_CAMERA_MODULES:=@CMAKE_CAMERA_LIBS_CONFIGCMAKE@
|
||||||
|
endif
|
||||||
|
|
||||||
OPENCV_LIB_TYPE:=@OPENCV_LIBTYPE_CONFIGMAKE@
|
OPENCV_LIB_TYPE:=@OPENCV_LIBTYPE_CONFIGMAKE@
|
||||||
|
|
||||||
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
||||||
OPENCV_LIB_SUFFIX:=so
|
OPENCV_LIB_SUFFIX:=so
|
||||||
OPENCV_EXTRA_COMPONENTS:=
|
OPENCV_EXTRA_COMPONENTS:=
|
||||||
else
|
else
|
||||||
OPENCV_LIB_SUFFIX:=a
|
OPENCV_LIB_SUFFIX:=a
|
||||||
OPENCV_MODULES+= androidcamera
|
OPENCV_MODULES+= androidcamera
|
||||||
OPENCV_EXTRA_COMPONENTS:=@JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ zlib
|
OPENCV_EXTRA_COMPONENTS:=@JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ @ZLIB_LIBRARY@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OPENCV_CAMERA_MODULES := @CMAKE_CAMERA_LIBS_CONFIGCMAKE@
|
|
||||||
|
|
||||||
define add_opencv_module
|
define add_opencv_module
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE:=opencv_$1
|
LOCAL_MODULE:=opencv_$1
|
||||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libopencv_$1.$(OPENCV_LIB_SUFFIX)
|
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libs/$(TARGET_ARCH_ABI)/libopencv_$1.$(OPENCV_LIB_SUFFIX)
|
||||||
include $(PREBUILT_@OPENCV_LIBTYPE_CONFIGMAKE@_LIBRARY)
|
include $(PREBUILT_@OPENCV_LIBTYPE_CONFIGMAKE@_LIBRARY)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define add_opencv_extra_component
|
define add_opencv_extra_component
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE:=$1
|
LOCAL_MODULE:=$1
|
||||||
LOCAL_SRC_FILES:=$(OPENCV_THIS_DIR)/3rdparty/lib/lib$1.a
|
LOCAL_SRC_FILES:=$(OPENCV_THIS_DIR)/3rdparty/libs/$(TARGET_ARCH_ABI)/lib$1.a
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define add_opencv_camera_module
|
define add_opencv_camera_module
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE:=$1
|
LOCAL_MODULE:=$1
|
||||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/lib$1.so
|
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libs/$(TARGET_ARCH_ABI)/lib$1.so
|
||||||
include $(PREBUILT_SHARED_LIBRARY)
|
include $(PREBUILT_SHARED_LIBRARY)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -47,11 +54,16 @@ ifneq ($(OPENCV_BASEDIR),)
|
|||||||
OPENCV_LOCAL_C_INCLUDES += $(foreach mod, $(OPENCV_MODULES), $(OPENCV_BASEDIR)/modules/$(mod)/include)
|
OPENCV_LOCAL_C_INCLUDES += $(foreach mod, $(OPENCV_MODULES), $(OPENCV_BASEDIR)/modules/$(mod)/include)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),STATIC)
|
||||||
OPENCV_LOCAL_LIBRARIES += $(foreach mod, $(OPENCV_MODULES), opencv_$(mod))
|
OPENCV_LOCAL_LIBRARIES += $(foreach mod, $(OPENCV_MODULES), opencv_$(mod))
|
||||||
|
endif
|
||||||
|
|
||||||
OPENCV_LOCAL_LIBRARIES += $(OPENCV_EXTRA_COMPONENTS)
|
OPENCV_LOCAL_LIBRARIES += $(OPENCV_EXTRA_COMPONENTS)
|
||||||
OPENCV_LOCAL_CFLAGS := -fsigned-char -fPIC -DANDROID
|
OPENCV_LOCAL_CFLAGS := -fPIC -DANDROID -fsigned-char
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_C_INCLUDES += $(OPENCV_LOCAL_C_INCLUDES)
|
LOCAL_C_INCLUDES += $(OPENCV_LOCAL_C_INCLUDES)
|
||||||
LOCAL_STATIC_LIBRARIES += $(OPENCV_LOCAL_LIBRARIES)
|
LOCAL_STATIC_LIBRARIES += $(OPENCV_LOCAL_LIBRARIES)
|
||||||
LOCAL_CFLAGS += $(OPENCV_LOCAL_CFLAGS)
|
LOCAL_CFLAGS += $(OPENCV_LOCAL_CFLAGS)
|
||||||
|
|
||||||
|
LOCAL_PATH:=$(USER_LOCAL_PATH)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user