Update to 2.0.0 tree from current Fremantle build
[opencv] / src / cxcore / CMakeLists.txt
1 # ----------------------------------------------------------------------------\r
2 #  CMake file for cxcore. See root CMakeLists.txt\r
3 # ----------------------------------------------------------------------------\r
4 project(cxcore)\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}/../../3rdparty/include"\r
12                     "${CMAKE_CURRENT_SOURCE_DIR}/../../include/opencv"\r
13                                         "${CMAKE_CURRENT_BINARY_DIR}")\r
14 \r
15 set(lib_hdr_names cxcore.h cxcore.hpp cxerror.h cxmat.hpp cxmisc.h cxoperations.hpp cxtypes.h cvver.h cvwimage.h cxflann.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 "cxcore")\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}/_cxcore.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 "cxprecomp.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} opencv_lapack zlib flann)\r
57 \r
58 # Linker flag needed for Windows Mobile 5 and 6 SDKs\r
59 if(MSVC AND CMAKE_CROSSCOMPILING)\r
60         set_target_properties(${the_target} PROPERTIES\r
61                 LINK_FLAGS "/NODEFAULTLIB:secchk"\r
62                 )\r
63 endif()\r
64 \r
65 add_dependencies(${the_target} opencv_lapack zlib)\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 each module headers separately\r
73 install(FILES ${lib_hdrs}\r
74         DESTINATION include/opencv\r
75         COMPONENT main)\r