978b40a1b745b48a0d2cf6f85898faed2c1fb4de
[opencv] / src / cv / CMakeLists.txt
1 # ----------------------------------------------------------------------------\r
2 #  CMake file for cv. See root CMakeLists.txt\r
3 # ----------------------------------------------------------------------------\r
4 project(cv)\r
5 \r
6 file(GLOB lib_srcs "*.cpp")\r
7 source_group("Src" FILES ${lib_srcs})\r
8 \r
9 add_definitions(-DCVAPI_EXPORTS)\r
10 \r
11 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../include/opencv"\r
12                     "${CMAKE_CURRENT_SOURCE_DIR}"\r
13                     "${CMAKE_CURRENT_BINARY_DIR}")\r
14 \r
15 set(lib_hdr_names cv.h cv.hpp cvcompat.h cvtypes.h)\r
16 set(lib_hdrs)\r
17 foreach(h ${lib_hdr_names})\r
18     list(APPEND lib_hdrs "${CMAKE_CURRENT_SOURCE_DIR}/../../include/opencv/${h}")\r
19 endforeach()\r
20 source_group("Include\\External" FILES ${lib_hdrs})\r
21 \r
22 file(GLOB lib_int_hdrs "*.h*")\r
23 source_group("Include\\Internal" FILES ${lib_int_hdrs})\r
24 \r
25 set(the_target "cv")\r
26 \r
27 add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})\r
28 \r
29 if(PCHSupport_FOUND)\r
30     set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/_cv.h)\r
31     if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")\r
32         if(${CMAKE_GENERATOR} MATCHES "Visual*")\r
33             set(${the_target}_pch "cvprecomp.cpp")\r
34         endif()            \r
35         add_native_precompiled_header(${the_target} ${pch_header})\r
36     elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")\r
37         add_precompiled_header(${the_target} ${pch_header})\r
38     endif()\r
39 endif()\r
40 \r
41 # For dynamic link numbering convenions\r
42 set_target_properties(${the_target} PROPERTIES\r
43     VERSION ${OPENCV_VERSION}\r
44     SOVERSION ${OPENCV_SOVERSION}\r
45     OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"\r
46     )\r
47 \r
48 # Additional target properties\r
49 set_target_properties(${the_target} PROPERTIES\r
50         DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"\r
51         ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"\r
52         RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"\r
53         )\r
54 \r
55 # Add the required libraries for linking:\r
56 target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} cxcore)\r
57 \r
58 if(MSVC AND CMAKE_CROSSCOMPILING)\r
59         set_target_properties(${the_target} PROPERTIES\r
60                 LINK_FLAGS "/NODEFAULTLIB:secchk"\r
61                 )\r
62 endif()\r
63 \r
64 # Dependencies of this target:\r
65 add_dependencies(${the_target} cxcore)\r
66 \r
67 install(TARGETS ${the_target}\r
68         RUNTIME DESTINATION bin COMPONENT main\r
69         LIBRARY DESTINATION lib COMPONENT main\r
70         ARCHIVE DESTINATION lib COMPONENT main)\r
71 \r
72 install(FILES ${lib_hdrs}\r
73     DESTINATION include/opencv\r
74     COMPONENT main)\r