Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
96d29621
Commit
96d29621
authored
Jun 29, 2011
by
Andrey Kamaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes for path mangling feature
parent
334cb1dc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
54 deletions
+62
-54
CMakeLists.txt
CMakeLists.txt
+52
-48
OpenCVConfig.cmake.in
OpenCVConfig.cmake.in
+10
-6
No files found.
CMakeLists.txt
View file @
96d29621
...
...
@@ -8,11 +8,9 @@
# - OCT-2008: Initial version <joseluisblancoc@gmail.com>
#
# ----------------------------------------------------------------------------
cmake_minimum_required
(
VERSION 2.4
)
project
(
OpenCV
)
set
(
CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true
)
set
(
OPENCV_INCLUDE_PREFIX include
)
# Add these standard paths to the search paths for FIND_LIBRARY
# to find libraries from these locations first
if
(
UNIX
)
...
...
@@ -55,40 +53,8 @@ if(MSVC)
set
(
CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL
""
FORCE
)
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
# for host system instead of packages for target system
if
(
NOT COMMAND find_host_package
)
macro
(
find_host_package
)
find_package
(
${
ARGN
}
)
endmacro
()
endif
()
if
(
NOT COMMAND find_host_program
)
macro
(
find_host_program
)
find_program
(
${
ARGN
}
)
endmacro
()
endif
()
cmake_minimum_required
(
VERSION 2.4
)
project
(
OpenCV
)
# --------------------------------------------------------------
# Indicate CMake 2.7 and above that we don't want to mix relative
...
...
@@ -99,6 +65,12 @@ if(COMMAND cmake_policy)
cmake_policy
(
SET CMP0003 NEW
)
endif
()
# ----------------------------------------------------------------------------
# Build static or dynamic libs?
# Default: dynamic libraries
# ----------------------------------------------------------------------------
set
(
BUILD_SHARED_LIBS ON CACHE BOOL
"Build shared libraries (.dll/.so) instead of static ones (.lib/.a)"
)
# ----------------------------------------------------------------------------
# Current version number:
# ----------------------------------------------------------------------------
...
...
@@ -124,19 +96,52 @@ else()
endif
()
#name mangling
if
(
UNIX
)
set
(
OPENCV_INCLUDE_PREFIX include
)
if
(
UNIX AND NOT ANDROID AND BUILD_SHARED_LIBS
)
option
(
OPENCV_MANGLED_INSTALL_PATHS
"Enables mangled install paths, that help with side by side installs"
False
)
if
(
OPENCV_MANGLED_INSTALL_PATHS
)
set
(
OPENCV_INCLUDE_PREFIX include/opencv-
${
OPENCV_VERSION
}
)
set
(
OPENCV_DOC_INSTALL_PATH share/OpenCV-
${
OPENCV_VERSION
}
/doc
)
endif
()
endif
()
# ----------------------------------------------------------------------------
# Build static or dynamic libs?
# Default: dynamic libraries
# ----------------------------------------------------------------------------
set
(
BUILD_SHARED_LIBS ON CACHE BOOL
"Build shared libraries (.dll/.so) instead of static ones (.lib/.a)"
)
# 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
()
if
(
OPENCV_MANGLED_INSTALL_PATHS
)
set
(
OPENCV_DOC_INSTALL_PATH share/OpenCV-
${
OPENCV_VERSION
}
/doc
)
else
()
set
(
OPENCV_DOC_INSTALL_PATH share/OpenCV/doc
)
endif
()
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
# for host system instead of packages for target system
if
(
NOT COMMAND find_host_package
)
macro
(
find_host_package
)
find_package
(
${
ARGN
}
)
endmacro
()
endif
()
if
(
NOT COMMAND find_host_program
)
macro
(
find_host_program
)
find_program
(
${
ARGN
}
)
endmacro
()
endif
()
# ----------------------------------------------------------------------------
# Use statically or dynamically linked CRT?
...
...
@@ -1191,7 +1196,6 @@ if(UNIX)
install
(
FILES
"
${
CMAKE_BINARY_DIR
}
/unix-install/OpenCVConfig.cmake"
DESTINATION share/OpenCV/
)
install
(
FILES
${
CMAKE_BINARY_DIR
}
/unix-install/OpenCVConfig-version.cmake DESTINATION share/OpenCV/
)
endif
()
endif
()
if
(
ANDROID
)
...
...
@@ -1266,7 +1270,7 @@ endif(ANDROID)
# The package name specified on the pkg-config command line is defined to
# be the name of the metadata file, minus the .pc extension. If a library
# can install multiple versions simultaneously, it must give each version
# its own name (for example, GTK 1.2 might have the package name "gtk+"
#
its own name (for example, GTK 1.2 might have the package name "gtk+"
# while GTK 2.0 has "gtk+-2.0").
# Part 2/2: ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
# prefix=/usr
...
...
@@ -1277,8 +1281,8 @@ endif(ANDROID)
set
(
prefix
${
CMAKE_INSTALL_PREFIX
}
)
set
(
exec_prefix
"
\$
{prefix}"
)
set
(
libdir
"
\$
{exec_prefix}/lib"
)
set
(
includedir
"
\$
{prefix}/
${
OPENCV_INCLUDE_PREFIX
}
"
)
set
(
VERSION
${
OPENCV_VERSION
}
)
set
(
includedir
"
\$
{prefix}/
${
OPENCV_INCLUDE_PREFIX
}
"
)
set
(
VERSION
${
OPENCV_VERSION
}
)
set
(
OPENCV_PC_FILE_NAME
"opencv.pc"
)
#need to be explicit with naming the pc file and version number for side by side installs to work.
...
...
OpenCVConfig.cmake.in
View file @
96d29621
...
...
@@ -15,10 +15,10 @@
# with this path is NOT needed.
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
# - OpenCV_VERSION : The version of this OpenCV build. Example: "
2.3.0
"
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "
2
"
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "
3
"
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "
0
"
# - OpenCV_VERSION : The version of this OpenCV build. Example: "
@OPENCV_VERSION@
"
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "
@OPENCV_VERSION_MAJOR@
"
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "
@OPENCV_VERSION_MINOR@
"
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "
@OPENCV_VERSION_PATCH@
"
#
# Advanced variables:
# - OpenCV_SHARED
...
...
@@ -26,6 +26,7 @@
# - OpenCV_INSTALL_PATH
# - OpenCV_LIB_COMPONENTS
# - OpenCV_EXTRA_COMPONENTS
# - OpenCV_USE_MANGLED_PATHS
#
# =================================================================================================
...
...
@@ -38,6 +39,9 @@ SET(OpenCV_COMPUTE_CAPABILITIES @OpenCV_CUDA_CC@)
# Some additional settings are required if OpenCV is built as static libs
set(OpenCV_SHARED @BUILD_SHARED_LIBS@)
# Enables mangled install paths, that help with side by side installs
set(OpenCV_USE_MANGLED_PATHS @OPENCV_MANGLED_INSTALL_PATHS@)
# Extract the directory where *this* file has been installed (determined at cmake run-time)
get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)
...
...
@@ -71,7 +75,7 @@ ELSEIF(NOT OpenCV_SHARED)
LIST(APPEND OpenCV_LIB_COMPONENTS opencv_androidcamera)
endif()
if(
@OPENCV_MANGLED_INSTALL_PATHS@
)
if(
OpenCV_USE_MANGLED_PATHS
)
#be explicit about the library names.
set(OpenCV_LIB_COMPONENTS_ )
foreach( CVLib ${OpenCV_LIB_COMPONENTS})
...
...
@@ -118,7 +122,7 @@ IF (NOT OpenCV_SHARED)
set(OpenCV_LIBS @OPENCV_LINKER_LIBS@ @IPP_LIBS@ @HIGHGUI_LIBRARIES@ ${OpenCV_LIBS})
set(OpenCV_EXTRA_COMPONENTS @JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ @ZLIB_LIBRARY@)
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
if (
WIN32 AND
${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
# Modern CMake:
foreach(__EXTRA_LIB ${OpenCV_EXTRA_COMPONENTS})
set(OpenCV_LIBS ${OpenCV_LIBS}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment