CMakeLists.txt 2.2 KB
Newer Older
1
#include_directories(${CMAKE_SOURCE_DIR}/include algorithms util nn .)
2

M
Marius Muja 已提交
3 4
add_definitions(-D_FLANN_VERSION=${FLANN_VERSION})

5 6
file(GLOB_RECURSE C_SOURCES *.cpp)
file(GLOB_RECURSE CPP_SOURCES *.cpp)
7

8 9
file(GLOB_RECURSE C_FLANN flann.cpp)
file(GLOB_RECURSE CPP_FLANN flann_cpp.cpp)
10

11 12
list(REMOVE_ITEM CPP_SOURCES ${C_FLANN})
list(REMOVE_ITEM C_SOURCES ${CPP_FLANN})
13

14
add_library(flann_cpp_s STATIC ${CPP_SOURCES})
M
Marius Muja 已提交
15 16 17
if(CMAKE_COMPILER_IS_GNUCC)
    set_target_properties(flann_cpp_s PROPERTIES COMPILE_FLAGS -fPIC)
endif()
18

19 20
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
    add_library(flann_cpp SHARED "")
21
    set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
22 23 24
    target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
else()
    add_library(flann_cpp SHARED ${CPP_SOURCES})
M
Marius Muja 已提交
25 26
endif()

M
Marius Muja 已提交
27 28 29
set_target_properties(flann_cpp PROPERTIES
   VERSION ${FLANN_VERSION}
   SOVERSION ${FLANN_SOVERSION}
30
) 
M
Marius Muja 已提交
31 32 33

if (BUILD_C_BINDINGS)
    add_library(flann_s STATIC ${C_SOURCES})
M
Marius Muja 已提交
34 35 36
    if(CMAKE_COMPILER_IS_GNUCC)
        set_target_properties(flann_s PROPERTIES COMPILE_FLAGS -fPIC)
    endif()
37 38 39

    if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
        add_library(flann SHARED "")
40
        set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
41 42 43 44 45 46 47 48 49
        target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
    else()
        add_library(flann SHARED ${C_SOURCES})
    endif()

    set_target_properties(flann PROPERTIES
       VERSION ${FLANN_VERSION}
       SOVERSION ${FLANN_SOVERSION}
    ) 
M
Marius Muja 已提交
50 51
endif()

52 53

if(WIN32)
M
Marius Muja 已提交
54
if (BUILD_C_BINDINGS)
55 56
    install (
        TARGETS flann
M
Marius Muja 已提交
57
        RUNTIME DESTINATION share/flann/matlab
58
    )
M
Marius Muja 已提交
59
endif()
60 61
endif(WIN32)

62 63 64 65 66 67 68 69

install (
    TARGETS flann_cpp flann_cpp_s
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
    ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
)

M
Marius Muja 已提交
70 71
if (BUILD_C_BINDINGS)
    install (
72
        TARGETS flann flann_s
M
Marius Muja 已提交
73 74 75 76 77
        RUNTIME DESTINATION bin
        LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
        ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
    )
endif()
M
Marius Muja 已提交
78

79
install (
80
    DIRECTORY flann
M
Marius Muja 已提交
81
    DESTINATION include
82
    FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
M
Marius Muja 已提交
83
)