diff --git a/3rdparty/stasm4.0.0/CMakeLists.txt b/3rdparty/stasm4.0.0/CMakeLists.txt index 1675828..1687865 100644 --- a/3rdparty/stasm4.0.0/CMakeLists.txt +++ b/3rdparty/stasm4.0.0/CMakeLists.txt @@ -4,21 +4,19 @@ cmake_minimum_required(VERSION 2.8.6) # Global Settings set(CPACK_PACKAGE_NAME "Stasm") set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) -set(CPACK_PACKAGE_VERSION_MAJOR 3) -set(CPACK_PACKAGE_VERSION_MINOR 1) +set(CPACK_PACKAGE_VERSION_MAJOR 4) +set(CPACK_PACKAGE_VERSION_MINOR 0) set(CPACK_PACKAGE_VERSION_PATCH 0) set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") # find the dependencies set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/Modules/") -# Find Qt 5.0.2 set(QT_DEPENDENCIES Concurrent Core Gui Network Sql Svg Widgets Xml) foreach(QT_DEPENDENCY ${QT_DEPENDENCIES}) find_package(Qt5${QT_DEPENDENCY}) endforeach() -# OpenCV 2.4.5 set(OPENCV_DEPENDENCIES calib3d core features2d flann gpu highgui imgproc ml nonfree objdetect photo video) find_package( OpenCV REQUIRED ) @@ -31,19 +29,9 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /DNOMINMAX /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4307 /wd4308 /nologo") endif() -add_subdirectory(${PROJECT_SOURCE_DIR}/stasm) -if(MSVC) - add_library(stasm STATIC ${SOURCE}) -else() - add_library(stasm SHARED ${SOURCE}) -endif() - -qt5_use_modules(stasm ${QT_DEPENDENCIES}) -set(SOURCE ${SOURCE} PARENT_SCOPE) -target_link_libraries(stasm ${OpenCV_LIBS} ${Qt5Core_QTMAIN_LIBRARIES}) +message(${PROJECT_SOURCE_DIR}) -install(FILES ${HEADERS} DESTINATION include) -install(TARGETS stasm LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) +add_subdirectory(${PROJECT_SOURCE_DIR}/stasm) # Package set(CPACK_BINARY_BUNDLE OFF) diff --git a/3rdparty/stasm4.0.0/stasm/CMakeLists.txt b/3rdparty/stasm4.0.0/stasm/CMakeLists.txt index 4b2414b..986ff2a 100644 --- a/3rdparty/stasm4.0.0/stasm/CMakeLists.txt +++ b/3rdparty/stasm4.0.0/stasm/CMakeLists.txt @@ -1,10 +1,24 @@ # Stasm CMakeLists +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +aux_source_directory(. STASM_SRC) +aux_source_directory(MOD_1 MOD1_SRC) + +add_library(stasm SHARED ${STASM_SRC} ${MOD1_SRC}) +qt5_use_modules(stasm ${QT_DEPENDENCIES}) + +set_target_properties(stasm PROPERTIES + DEFINE_SYMBOL STASM_LIBRARY + VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} + SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR} + LINK_INTERFACE_LIBRARIES "" + AUTOMOC TRUE) + +target_link_libraries(stasm ${OpenCV_LIBS} ${Qt5Core_QTMAIN_LIBRARIES}) + file(GLOB HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h") file(GLOB HEADERS ${HEADERS} "${CMAKE_CURRENT_SOURCE_DIR}/MOD_1/*.h") -file(GLOB SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") -file(GLOB SOURCE ${SOURCE} "${CMAKE_CURRENT_SOURCE_DIR}/MOD_1/*.cpp") - -set(HEADERS ${HEADERS} PARENT_SCOPE) -set(SOURCE ${SOURCE} PARENT_SCOPE) \ No newline at end of file +install(FILES ${HEADERS} DESTINATION include/stasm) +install(TARGETS stasm RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/openbr/plugins/stasm4.cmake b/openbr/plugins/stasm4.cmake index 42c8de5..021adc5 100644 --- a/openbr/plugins/stasm4.cmake +++ b/openbr/plugins/stasm4.cmake @@ -2,14 +2,9 @@ set(BR_WITH_STASM4 ON CACHE BOOL "Build with Stasm") if(${BR_WITH_STASM4}) find_package(Stasm4 REQUIRED) + set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} plugins/stasm4.cpp) set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Stasm4_LIBS}) - if(WIN32) - install(DIRECTORY ${Stasm_DIR}/build/ DESTINATION bin) - else() - install(DIRECTORY ${Stasm_DIR}/build/ DESTINATION lib) - endif() - install(DIRECTORY ${Stasm_DIR}/data/ DESTINATION share/openbr/models/stasm) endif() diff --git a/share/openbr/cmake/FindStasm4.cmake b/share/openbr/cmake/FindStasm4.cmake index 43fda3b..eb919c8 100644 --- a/share/openbr/cmake/FindStasm4.cmake +++ b/share/openbr/cmake/FindStasm4.cmake @@ -7,14 +7,30 @@ # find_package(Stasm4 REQUIRED) # target_link_libraries(MY_TARGET ${Stasm4_LIBS}) # ================================================================ +include(ExternalProject) -find_path(Stasm_DIR stasm/stasm_lib.h ${CMAKE_SOURCE_DIR}/3rdparty/*) +get_cmake_property(CACHE_VARS CACHE_VARIABLES) +foreach(CACHE_VAR ${CACHE_VARS}) + get_property(CACHE_VAR_HELPSTRING CACHE ${CACHE_VAR} PROPERTY HELPSTRING) + if(CACHE_VAR_HELPSTRING STREQUAL "No help, variable specified on the command line.") + get_property(CACHE_VAR_TYPE CACHE ${CACHE_VAR} PROPERTY TYPE) + if(CACHE_VAR_TYPE STREQUAL "UNINITIALIZED") + set(CACHE_VAR_TYPE) + else() + set(CACHE_VAR_TYPE :${CACHE_VAR_TYPE}) + endif() + set(CMAKE_ARGS "${CMAKE_ARGS} -D${CACHE_VAR}${CACHE_VAR_TYPE}=\"${${CACHE_VAR}}\"") + endif() +endforeach() -add_subdirectory(${Stasm_DIR} ${Stasm_DIR}/build) +find_path(Stasm_DIR stasm/stasm_lib.h ${CMAKE_SOURCE_DIR}/3rdparty/*) -set(SRC ${SOURCE};${SRC}) +ExternalProject_Add(stasm + URL ${Stasm_DIR} + CMAKE_ARGS ${CMAKE_ARGS} + ) -include_directories(${Stasm_DIR}/stasm) -link_directories(${Stasm_DIR}/build) +ExternalProject_Get_Property(stasm install_dir) +include_directories(${install_dir}/src/stasm-build/Stasm_DIR/build/install/include) -set(Stasm4_LIBS stasm) +file(GLOB Stasm4_LIBS ${install_dir}/src/stasm-build/Stasm_DIR/build/install/lib/*)