diff --git a/3rdparty/stasm4.0.0/CMakeLists.txt b/3rdparty/stasm4.0.0/CMakeLists.txt index 7a6bf35..99da336 100644 --- a/3rdparty/stasm4.0.0/CMakeLists.txt +++ b/3rdparty/stasm4.0.0/CMakeLists.txt @@ -29,6 +29,7 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /DNOMINMAX /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4307 /wd4308 /nologo") endif() +message("********* ${PROJECT_SOURCE_DIR} ************") add_subdirectory(${PROJECT_SOURCE_DIR}/stasm) # Package diff --git a/3rdparty/stasm4.0.0/stasm/CMakeLists.txt b/3rdparty/stasm4.0.0/stasm/CMakeLists.txt index 44eba3b..1d87026 100644 --- a/3rdparty/stasm4.0.0/stasm/CMakeLists.txt +++ b/3rdparty/stasm4.0.0/stasm/CMakeLists.txt @@ -15,6 +15,5 @@ set_target_properties(stasm PROPERTIES target_link_libraries(stasm ${OpenCV_LIBS} ${Qt5Core_QTMAIN_LIBRARIES}) -file(GLOB HEADERS "include/*.h") -install(FILES ${HEADERS} DESTINATION include/stasm) +install(DIRECTORY include 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 5f8dd7f..d7e4506 100644 --- a/openbr/plugins/stasm4.cmake +++ b/openbr/plugins/stasm4.cmake @@ -3,14 +3,16 @@ set(BR_WITH_STASM4 ON CACHE BOOL "Build with Stasm") if(${BR_WITH_STASM4}) find_package(Stasm4 REQUIRED) + include_directories(${STASM4_INCLUDE_DIR}) + set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} plugins/stasm4.cpp) - set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Stasm4_LIBS}) + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${STASM4_LIBS}) if(WIN32) - install(FILES ${Stasm4_LIBS} DESTINATION bin) + install(FILES ${STASM4_LIBS} DESTINATION bin) else() - install(FILES ${Stasm4_LIBS} DESTINATION lib) + install(FILES ${STASM4_LIBS} DESTINATION lib) endif() - install(DIRECTORY ${Stasm4_DIR}/data/ DESTINATION share/openbr/models/stasm) + install(DIRECTORY ${STASM4_DATA_DIR} DESTINATION share/openbr/models/stasm) endif() diff --git a/share/openbr/cmake/FindStasm4.cmake b/share/openbr/cmake/FindStasm4.cmake index 01917b8..9f09f94 100644 --- a/share/openbr/cmake/FindStasm4.cmake +++ b/share/openbr/cmake/FindStasm4.cmake @@ -1,11 +1,14 @@ # ================================================================ # The Stasm CMake configuration file # +# Formatting from: http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries +# # Usage from an external project: # In your CMakeLists.txt, add these lines: # -# find_package(Stasm4 REQUIRED) -# target_link_libraries(MY_TARGET ${Stasm4_LIBS}) +# find_package(STASM4 REQUIRED) +# include_directories(STASM4_INCLUDE_DIR) +# target_link_libraries(MY_TARGET ${STASM4_LIBS}) # ================================================================ include(ExternalProject) @@ -23,40 +26,28 @@ foreach(CACHE_VAR ${CACHE_VARS}) endif() endforeach() -find_path(Stasm4_SOURCE_DIR stasm/include/stasm_lib.h ${CMAKE_SOURCE_DIR}/3rdparty/*) +find_path(STASM4_SOURCE_DIR stasm/include/stasm_lib.h ${CMAKE_SOURCE_DIR}/3rdparty/*) -set(stasm_prefix ${CMAKE_BINARY_DIR}/stasm) +set(STASM4_PREFIX "${CMAKE_BINARY_DIR}/stasm") +set(STASM4_INSTALL_DIR "${CMAKE_BINARY_DIR}/stasm") # Have to use a name other than stasm so it doesn't conflict with the project itself ExternalProject_Add(external_stasm - URL ${Stasm4_SOURCE_DIR} - PREFIX ${stasm_prefix} - CMAKE_ARGS "-DCMAKE_PREFIX_PATH=~/Qt/5.3/clang_64/" - INSTALL_COMMAND "" - BINARY_DIR "${stasm_prefix}/lib" + URL ${STASM4_SOURCE_DIR} + PREFIX ${STASM4_PREFIX} + CMAKE_ARGS \"${CMAKE_ARGS}\"; + INSTALL_DIR ${STASM4_INSTALL_DIR} + BINARY_DIR "${STASM4_PREFIX}/lib" ) -ExternalProject_Add_Step( - external_stasm - copy_stasm_headers - COMMAND ${CMAKE_COMMAND} -E copy_directory "${Stasm4_SOURCE_DIR}/stasm/include" ${stasm_prefix}/include/stasm - COMMENT "Copying stasm headers..." - DEPENDERS configure - ) - -ExternalProject_Add_Step( - external_stasm - copy_stasm_data - COMMAND ${CMAKE_COMMAND} -E copy_directory "${Stasm4_SOURCE_DIR}/data" ${stasm_prefix}/data - COMMENT "Copying stasm headers..." - DEPENDERS configure - ) - # We have to fake a library being created to force external_stasm to be built add_library(fake_stasm UNKNOWN IMPORTED) add_dependencies(fake_stasm external_stasm) ExternalProject_Get_Property(external_stasm install_dir) -set(Stasm4_DIR ${install_dir}) -include_directories(${install_dir}/include/stasm) -file(GLOB Stasm4_LIBS ${install_dir}/lib/stasm/*.dylib) +set(STASM4_FOUND TRUE) +set(STASM4_INCLUDE_DIR ${install_dir}/include) +set(STASM4_DATA_DIR ${install_dir}/src/external_stasm/data) + +# We have to explicitly set these, because they aren't created by the time the calling project gets to this point +set(STASM4_LIBS ${install_dir}/lib/stasm/libstasm.dylib ${install_dir}/lib/stasm/libstasm.dylib)