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
8fb37606
Commit
8fb37606
authored
May 26, 2015
by
Vadim Pisarevsky
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4032 from mshabunin:fix-pkg-config
parents
dc587992
3863dc5b
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
101 additions
and
57 deletions
+101
-57
CMakeLists.txt
CMakeLists.txt
+6
-1
OpenCVGenPkgconfig.cmake
cmake/OpenCVGenPkgconfig.cmake
+63
-52
OpenCVUtils.cmake
cmake/OpenCVUtils.cmake
+16
-1
opencv-XXX.pc.in
cmake/templates/opencv-XXX.pc.in
+2
-1
CMakeLists.txt
modules/highgui/CMakeLists.txt
+1
-1
CMakeLists.txt
modules/ts/CMakeLists.txt
+1
-1
Makefile
samples/cpp/example_cmake/Makefile
+12
-0
No files found.
CMakeLists.txt
View file @
8fb37606
...
...
@@ -769,6 +769,11 @@ else()
endif
()
status
(
" Precompiled headers:"
PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO
)
# ========================== Dependencies ============================
ocv_get_all_libs
(
deps_modules deps_extra deps_3rdparty
)
status
(
" Extra dependencies:"
${
deps_extra
}
)
status
(
" 3rdparty dependencies:"
${
deps_3rdparty
}
)
# ========================== OpenCV modules ==========================
status
(
""
)
status
(
" OpenCV modules:"
)
...
...
@@ -909,7 +914,7 @@ else()
endif
()
if
(
WITH_GDAL
)
status
(
" GDAL:"
GDAL_FOUND THEN
"
${
GDAL_LIBRARY
}
"
)
status
(
" GDAL:"
GDAL_FOUND THEN
"
${
GDAL_LIBRARY
}
"
ELSE
"NO"
)
else
()
status
(
" GDAL:"
"NO"
)
endif
()
...
...
cmake/OpenCVGenPkgconfig.cmake
View file @
8fb37606
...
...
@@ -8,71 +8,82 @@
#
# ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
# -------------------------------------------------------------------------------------------
set
(
prefix
"
${
CMAKE_INSTALL_PREFIX
}
"
)
set
(
exec_prefix
"
\$
{prefix}"
)
set
(
libdir
""
)
#TODO: need link paths for OpenCV_EXTRA_COMPONENTS
set
(
includedir
"
\$
{prefix}/
${
OPENCV_INCLUDE_INSTALL_PATH
}
"
)
if
(
CMAKE_BUILD_TYPE MATCHES
"Release"
)
set
(
ocv_optkind OPT
)
else
()
set
(
ocv_optkind DBG
)
endif
()
#build the list of opencv libs and dependencies for all modules
set
(
OpenCV_LIB_COMPONENTS
""
)
set
(
OpenCV_EXTRA_COMPONENTS
""
)
foreach
(
m
${
OPENCV_MODULES_PUBLIC
}
)
list
(
INSERT OpenCV_LIB_COMPONENTS 0
${${
m
}
_MODULE_DEPS_
${
ocv_optkind
}}
${
m
}
)
if
(
${
m
}
_EXTRA_DEPS_
${
ocv_optkind
}
)
list
(
INSERT OpenCV_EXTRA_COMPONENTS 0
${${
m
}
_EXTRA_DEPS_
${
ocv_optkind
}}
)
endif
()
endforeach
()
macro
(
fix_prefix lst isown
)
set
(
_lst
)
foreach
(
item
${${
lst
}}
)
if
(
TARGET
${
item
}
)
get_target_property
(
item
"
${
item
}
"
LOCATION_
${
CMAKE_BUILD_TYPE
}
)
if
(
"
${
isown
}
"
)
get_filename_component
(
item
"
${
item
}
"
NAME_WE
)
string
(
REGEX REPLACE
"^lib(.*)"
"
\\
1"
item
"
${
item
}
"
)
endif
()
endif
()
if
(
item MATCHES
"^-l"
)
list
(
APPEND _lst
"
${
item
}
"
)
elseif
(
item MATCHES
"[
\\
/]"
)
get_filename_component
(
libdir
"
${
item
}
"
PATH
)
get_filename_component
(
libname
"
${
item
}
"
NAME_WE
)
string
(
REGEX REPLACE
"^lib(.*)"
"
\\
1"
libname
"
${
libname
}
"
)
list
(
APPEND _lst
"-L
${
libdir
}
"
"-l
${
libname
}
"
)
else
()
list
(
APPEND _lst
"-l
${
item
}
"
)
endif
()
endforeach
()
set
(
${
lst
}
${
_lst
}
)
unset
(
_lst
)
endmacro
()
ocv_list_unique
(
OpenCV_LIB_COMPONENTS
)
ocv_list_unique
(
OpenCV_EXTRA_COMPONENTS
)
ocv_list_reverse
(
OpenCV_LIB_COMPONENTS
)
ocv_list_reverse
(
OpenCV_EXTRA_COMPONENTS
)
# build the list of opencv libs and dependencies for all modules
ocv_get_all_libs
(
_modules _extra _3rdparty
)
#build the list of components
set
(
OpenCV_LIB_COMPONENTS_
""
)
foreach
(
CVLib
${
OpenCV_LIB_COMPONENTS
}
)
if
(
TARGET
${
CVLib
}
)
get_target_property
(
libpath
${
CVLib
}
LOCATION_
${
CMAKE_BUILD_TYPE
}
)
get_filename_component
(
libname
"
${
libpath
}
"
NAME
)
if
(
INSTALL_TO_MANGLED_PATHS
)
set
(
libname
"
${
libname
}
.
${
OPENCV_VERSION
}
"
)
endif
()
#need better solution....
if
(
libpath MATCHES
"3rdparty"
)
set
(
installDir
"share/OpenCV/3rdparty/
${
OPENCV_LIB_INSTALL_PATH
}
"
)
else
()
set
(
installDir
"
${
OPENCV_LIB_INSTALL_PATH
}
"
)
endif
()
# Note:
# when linking against static libraries, if libfoo depends on libbar, then
# libfoo must come first in the linker flags.
set
(
OpenCV_LIB_COMPONENTS_
"
${
OpenCV_LIB_COMPONENTS_
}
\$
{exec_prefix}/
${
installDir
}
/
${
libname
}
"
)
endif
()
endforeach
()
# world and contrib_world are special targets whose library should come first,
# especially for static link.
if
(
_modules MATCHES
"opencv_world"
)
set
(
_modules
"opencv_world"
)
endif
()
# add extra dependencies required for OpenCV
set
(
OpenCV_LIB_COMPONENTS
${
OpenCV_LIB_COMPONENTS_
}
)
if
(
OpenCV_EXTRA_COMPONENTS
)
foreach
(
extra_component
${
OpenCV_EXTRA_COMPONENTS
}
)
if
(
_modules MATCHES
"opencv_contrib_world"
)
list
(
REMOVE_ITEM _modules
"opencv_contrib_world"
)
list
(
INSERT _modules 0
"opencv_contrib_world"
)
endif
(
)
if
(
extra_component MATCHES
"^-[lL]"
OR extra_component MATCHES
"[
\\
/]"
)
set
(
maybe_l_prefix
""
)
else
()
set
(
maybe_l_prefix
"-l"
)
endif
()
fix_prefix
(
_modules TRUE
)
fix_prefix
(
_extra FALSE
)
fix_prefix
(
_3rdparty TRUE
)
set
(
OpenCV_LIB_COMPONENTS
"
${
OpenCV_LIB_COMPONENTS
}
${
maybe_l_prefix
}${
extra_component
}
"
)
ocv_list_unique
(
_modules
)
ocv_list_unique
(
_extra
)
ocv_list_unique
(
_3rdparty
)
endforeach
()
set
(
OPENCV_PC_LIBS
"-L
\$
{exec_prefix}/
${
OPENCV_LIB_INSTALL_PATH
}
"
"
${
_modules
}
"
)
if
(
BUILD_SHARED_LIBS
)
set
(
OPENCV_PC_LIBS_PRIVATE
"
${
_extra
}
"
)
else
()
set
(
OPENCV_PC_LIBS_PRIVATE
"-L
\$
{exec_prefix}/
${
OPENCV_3P_LIB_INSTALL_PATH
}
"
"
${
_3rdparty
}
"
"
${
_extra
}
"
)
endif
()
string
(
REPLACE
";"
" "
OPENCV_PC_LIBS
"
${
OPENCV_PC_LIBS
}
"
)
string
(
REPLACE
";"
" "
OPENCV_PC_LIBS_PRIVATE
"
${
OPENCV_PC_LIBS_PRIVATE
}
"
)
#generate the .pc file
set
(
prefix
"
${
CMAKE_INSTALL_PREFIX
}
"
)
set
(
exec_prefix
"
\$
{prefix}"
)
set
(
libdir
"
\$
{exec_prefix}/
${
OPENCV_LIB_INSTALL_PATH
}
"
)
set
(
includedir
"
\$
{prefix}/
${
OPENCV_INCLUDE_INSTALL_PATH
}
"
)
if
(
INSTALL_TO_MANGLED_PATHS
)
set
(
OPENCV_PC_FILE_NAME
"opencv-
${
OPENCV_VERSION
}
.pc"
)
else
()
...
...
cmake/OpenCVUtils.cmake
View file @
8fb37606
...
...
@@ -796,11 +796,19 @@ macro(ocv_get_all_libs _modules _extra _3rdparty)
set
(
${
_3rdparty
}
""
)
foreach
(
m
${
OPENCV_MODULES_PUBLIC
}
)
get_target_property
(
deps
${
m
}
INTERFACE_LINK_LIBRARIES
)
if
(
NOT deps
)
set
(
deps
""
)
endif
()
list
(
INSERT
${
_modules
}
0
${
deps
}
${
m
}
)
foreach
(
dep
${
deps
}
${
OPENCV_LINKER_LIBS
}
)
if
(
NOT DEFINED OPENCV_MODULE_
${
dep
}
_LOCATION
)
if
(
TARGET
${
dep
}
)
list
(
INSERT
${
_3rdparty
}
0
${
dep
}
)
get_target_property
(
_output
${
dep
}
ARCHIVE_OUTPUT_DIRECTORY
)
if
(
"
${
_output
}
"
STREQUAL
"
${
3P_LIBRARY_OUTPUT_PATH
}
"
)
list
(
INSERT
${
_3rdparty
}
0
${
dep
}
)
else
()
list
(
INSERT
${
_extra
}
0
${
dep
}
)
endif
()
else
()
list
(
INSERT
${
_extra
}
0
${
dep
}
)
endif
()
...
...
@@ -808,6 +816,13 @@ macro(ocv_get_all_libs _modules _extra _3rdparty)
endforeach
()
endforeach
()
# ippicv specific handling
list
(
FIND
${
_extra
}
"ippicv"
ippicv_idx
)
if
(
${
ippicv_idx
}
GREATER -1
)
list
(
REMOVE_ITEM
${
_extra
}
"ippicv"
)
list
(
INSERT
${
_3rdparty
}
0
"ippicv"
)
endif
()
# split 3rdparty libs and modules
list
(
REMOVE_ITEM
${
_modules
}
${${
_3rdparty
}}
${${
_extra
}}
)
...
...
cmake/templates/opencv-XXX.pc.in
View file @
8fb37606
...
...
@@ -9,5 +9,6 @@ includedir_new=@includedir@
Name: OpenCV
Description: Open Source Computer Vision Library
Version: @OPENCV_VERSION_PLAIN@
Libs: @OpenCV_LIB_COMPONENTS@
Libs: @OPENCV_PC_LIBS@
Libs.private: @OPENCV_PC_LIBS_PRIVATE@
Cflags: -I${includedir_old} -I${includedir_new}
modules/highgui/CMakeLists.txt
View file @
8fb37606
...
...
@@ -3,7 +3,7 @@ if (WINRT)
endif
()
set
(
the_description
"High-level GUI and Media I/O"
)
ocv_add_module
(
highgui opencv_imgproc opencv_imgcodecs opencv_videoio
OPTIONAL opencv_androidcamera
WRAP python
)
ocv_add_module
(
highgui opencv_imgproc opencv_imgcodecs opencv_videoio WRAP python
)
# ----------------------------------------------------------------------------
# CMake file for highgui. See root CMakeLists.txt
...
...
modules/ts/CMakeLists.txt
View file @
8fb37606
...
...
@@ -9,7 +9,7 @@ set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wundef
)
ocv_add_module
(
ts opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui
)
ocv_add_module
(
ts
INTERNAL
opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui
)
ocv_glob_module_sources
()
ocv_module_include_directories
()
...
...
samples/cpp/example_cmake/Makefile
0 → 100644
View file @
8fb37606
CXX
?=
g++
CXXFLAGS
+=
-c
-Wall
$(
shell
pkg-config
--cflags
opencv
)
LDFLAGS
+=
$(
shell
pkg-config
--libs
--static
opencv
)
all
:
opencv_example
opencv_example
:
example.o; $(CXX) $< -o $@ $(LDFLAGS)
%.o
:
%.cpp; $(CXX) $< -o $@ $(CXXFLAGS)
clean
:
; rm -f example.o opencv_example
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