Update to 2.0.0 tree from current Fremantle build
[opencv] / 3rdparty / flann / CMakeLists.txt
1 if (DEFINED OPENCV_VERSION)
2
3 # ----------------------------------------------------------------------------
4 #  CMake file for libflann. See root CMakeLists.txt
5 #
6 # ----------------------------------------------------------------------------
7 project(flann)
8
9 # List of C++ files:
10
11 #set(CMAKE_BUILD_TYPE Debug)
12
13 include_directories(
14    ${CMAKE_CURRENT_SOURCE_DIR}
15    ${CMAKE_CURRENT_SOURCE_DIR}/algorithms
16    ${CMAKE_CURRENT_SOURCE_DIR}/util
17    ${CMAKE_CURRENT_SOURCE_DIR}/nn
18    "${CMAKE_CURRENT_SOURCE_DIR}/../include/flann"
19    )
20
21 # The .cpp files:
22 file(GLOB_RECURSE flann_sources_cpp *.cpp)
23 file(GLOB_RECURSE flann_sources_h1 "${CMAKE_CURRENT_SOURCE_DIR}/../include/flann/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/../include/flann/*.hpp")
24 file(GLOB_RECURSE flann_sources_h2 *.h *.hpp)
25
26 source_group("Src" FILES ${flann_sources_cpp})
27 source_group("Include\\External" FILES ${flann_sources_h1})
28 source_group("Include\\Internal" FILES ${flann_sources_h2})
29
30 set(flann_sources ${flann_sources_cpp} ${flann_sources_h1} ${flann_sources_h2})
31
32 # ----------------------------------------------------------------------------------
33 #           Define the library target:
34 # ----------------------------------------------------------------------------------
35
36 set(the_target "flann")
37
38 add_library(${the_target} STATIC ${flann_sources})
39 add_definitions(-Dflann_EXPORTS)
40
41 if(MSVC)
42     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
43     add_definitions(-DJAS_WIN_MSVC_BUILD)
44 endif()
45
46 if(UNIX AND CMAKE_COMPILER_IS_GNUCXX)
47      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
48      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
49 endif()
50
51 set_target_properties(${the_target}
52    PROPERTIES
53    OUTPUT_NAME "${the_target}"
54    DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
55    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib"
56    )
57
58 ELSE()
59
60 INCLUDE_DIRECTORIES(algorithms util nn .)
61
62 ADD_SUBDIRECTORY( tests )
63
64 file(GLOB_RECURSE SOURCES *.cpp)
65 #SET(SOURCES flann.cpp util/Random.cpp nn/Testing.cpp algorithms/NNIndex.cpp algorithms/dist.cpp util/Logger.cpp util/Saving.cpp)
66
67 ADD_LIBRARY(flann SHARED ${SOURCES})
68 ADD_LIBRARY(flann_s STATIC ${SOURCES})
69
70 IF(WIN32)
71 INSTALL (
72     TARGETS flann
73     RUNTIME DESTINATION matlab 
74 )
75 INSTALL (
76     TARGETS flann
77     RUNTIME DESTINATION python/pyflann/bindings
78 )
79 ELSE(WIN32)
80 INSTALL (
81     TARGETS flann
82     LIBRARY DESTINATION python/pyflann/bindings
83 )
84 ENDIF(WIN32)
85
86 INSTALL (
87     TARGETS flann flann_s
88     RUNTIME DESTINATION bin
89     LIBRARY DESTINATION lib
90     ARCHIVE DESTINATION lib
91 )
92
93 # INSTALL (
94 #     TARGETS flann flann_s
95 #     ARCHIVE DESTINATION ${PROJECT_SOURCE_DIR}/python
96 #     LIBRARY DESTINATION ${PROJECT_SOURCE_DIR}/python
97 # )
98
99 INSTALL (
100     FILES flann.h constants.h
101     DESTINATION include
102 )
103
104 ENDIF()