diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a9a8c3882776852532d3318478b9acf38fa0e7d..18bced436aba63f3a7e3805a2f3b411926d450ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,28 +140,25 @@ if(BGS_PYTHON_SUPPORT) message(STATUS "NUMPY_INCLUDE_DIR: ${NUMPY_INCLUDE_DIR}") endif() -#file(GLOB sources FrameProcessor.cpp PreProcessor.cpp VideoAnalysis.cpp VideoCapture.cpp) file(GLOB main Main.cpp FrameProcessor.cpp PreProcessor.cpp VideoAnalysis.cpp VideoCapture.cpp) file(GLOB demo Demo.cpp) file(GLOB demo2 Demo2.cpp) -# list(REMOVE_ITEM sources ${demo} ${demo2}) - file(GLOB_RECURSE analysis_src package_analysis/*.cpp) +file(GLOB_RECURSE bgs_src package_bgs/*.cpp package_bgs/*.c) +file(GLOB_RECURSE bgs_include package_bgs/*.h) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${OpenCV_INCLUDE_DIRS}) + if(BGS_PYTHON_SUPPORT) - file(GLOB_RECURSE bgs_src package_bgs/*.cpp package_bgs/*.c wrapper_python/*.cpp) - file(GLOB_RECURSE bgs_include package_bgs/*.h wrapper_python/*.h) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + file(GLOB_RECURSE bgs_python_src wrapper_python/*.cpp) + file(GLOB_RECURSE bgs_python_include wrapper_python/*.h) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/pybind11/include) - include_directories(${OpenCV_INCLUDE_DIRS}) #include_directories(${Boost_INCLUDE_DIRS}) include_directories(${PYTHON_INCLUDE_DIRS}) include_directories(${NUMPY_INCLUDE_DIR}) -else() - file(GLOB_RECURSE bgs_src package_bgs/*.cpp package_bgs/*.c) - file(GLOB_RECURSE bgs_include package_bgs/*.h) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - include_directories(${OpenCV_INCLUDE_DIRS}) endif() # GMG is not available in older OpenCV versions @@ -170,25 +167,27 @@ if(${OpenCV_VERSION} VERSION_LESS 2.4.3) list(REMOVE_ITEM bgs_src ${gmg}) endif() +add_library(bgslibrary_core STATIC ${bgs_src} ${analysis_src}) +target_link_libraries(bgslibrary_core ${OpenCV_LIBS}) +set_property(TARGET bgslibrary_core PROPERTY PUBLIC_HEADER ${bgs_include}) + if(BGS_PYTHON_SUPPORT) - #add_library(bgs_python SHARED ${sources} ${bgs_src} ${analysis_src}) #add_library(bgs_python SHARED ${bgs_src} ${analysis_src}) - pybind11_add_module(bgs_python ${bgs_src} ${analysis_src}) - target_link_libraries(bgs_python PRIVATE ${OpenCV_LIBS} ${PYTHON_LIBRARY} pybind11::module) + #pybind11_add_module(bgs_python ${bgs_src} ${analysis_src}) + pybind11_add_module(bgs_python ${bgs_python_src}) + + target_link_libraries(bgs_python PRIVATE bgslibrary_core ${OpenCV_LIBS} ${PYTHON_LIBRARY} pybind11::module) #target_link_libraries(bgs_python ${OpenCV_LIBS} ${Boost_LIBRARIES} ${PYTHON_LIBRARY}) #target_link_libraries(bgs_python ${OpenCV_LIBS} ${PYTHON_LIBRARY} pybind11::module) #target_link_libraries(bgs_python PRIVATE ${OpenCV_LIBS} ${PYTHON_LIBRARY} pybind11::embed) + #set_target_properties(bgs_python PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}" SUFFIX "${PYTHON_MODULE_EXTENSION}") set_target_properties(bgs_python PROPERTIES SUFFIX "${PYTHON_MODULE_EXTENSION}") + target_compile_definitions(bgs_python PRIVATE BGS_PYTHON_SUPPORT=1) - install(TARGETS bgs_python DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}) + # Set the output library name to bgslibrary because that's what setup.py and distutils expects. set_property(TARGET bgs_python PROPERTY OUTPUT_NAME "bgs") -else() - #add_library(bgslibrary_core STATIC ${sources} ${bgs_src} ${analysis_src}) - add_library(bgslibrary_core STATIC ${bgs_src} ${analysis_src}) - target_link_libraries(bgslibrary_core ${OpenCV_LIBS}) - set_property(TARGET bgslibrary_core PROPERTY PUBLIC_HEADER ${bgs_include}) endif() #if(WIN32) @@ -207,23 +206,25 @@ endif() # endif() #endif() -if(NOT BGS_PYTHON_SUPPORT) - add_executable(bgslibrary ${main}) - target_link_libraries(bgslibrary ${OpenCV_LIBS} bgslibrary_core) - # set_target_properties(bgslibrary PROPERTIES OUTPUT_NAME bgs) - - add_executable(bgs_demo ${demo}) - target_link_libraries(bgs_demo ${OpenCV_LIBS} bgslibrary_core) - - add_executable(bgs_demo2 ${demo2}) - target_link_libraries(bgs_demo2 ${OpenCV_LIBS} bgslibrary_core) - - install(TARGETS bgslibrary_core - bgslibrary - RUNTIME DESTINATION bin COMPONENT app - LIBRARY DESTINATION lib COMPONENT runtime - ARCHIVE DESTINATION lib COMPONENT runtime - PUBLIC_HEADER DESTINATION include/package_bgs COMPONENT dev - FRAMEWORK DESTINATION "/Library/Frameworks" - ) -endif() \ No newline at end of file +add_executable(bgslibrary ${main}) +target_link_libraries(bgslibrary ${OpenCV_LIBS} bgslibrary_core) +# set_target_properties(bgslibrary PROPERTIES OUTPUT_NAME bgs) + +add_executable(bgs_demo ${demo}) +target_link_libraries(bgs_demo ${OpenCV_LIBS} bgslibrary_core) + +add_executable(bgs_demo2 ${demo2}) +target_link_libraries(bgs_demo2 ${OpenCV_LIBS} bgslibrary_core) + +if(BGS_PYTHON_SUPPORT) + install(TARGETS bgs_python DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +install(TARGETS bgslibrary_core + bgslibrary + RUNTIME DESTINATION bin COMPONENT app + LIBRARY DESTINATION lib COMPONENT runtime + ARCHIVE DESTINATION lib COMPONENT runtime + PUBLIC_HEADER DESTINATION include/package_bgs COMPONENT dev + FRAMEWORK DESTINATION "/Library/Frameworks" +)