diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c8608775..f1076df57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ - -DOPENCV_PATH=3rdparty/opencv/build \ + -DOPENCV_PATH=build/3rdparty/opencv_build \ ${{ matrix.stats && '-DENABLE_STATISTIC_TENSORS=ON' || '' }} \ ${{ matrix.stats && '-DENABLE_STATISTIC_TIME=ON' || '' }} \ ${{ matrix.stats && '-DENABLE_STATISTIC_WEIGHTS=ON' || '' }} @@ -49,7 +49,7 @@ jobs: - name: Prepare OpenCV libs run: | mkdir -p build/bin/opencv_libs - cp -a 3rdparty/opencv/build/lib/libopencv_* build/bin/opencv_libs/ + cp -a build/3rdparty/opencv_build/lib/libopencv_* build/bin/opencv_libs/ echo "Library permissions after copy:" stat -c "%A %n" build/bin/opencv_libs/libopencv_imgcodecs.so* diff --git a/CMakeLists.txt b/CMakeLists.txt index bd5b56738..3fed97c71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,8 @@ include_directories("include") add_subdirectory(3rdparty) +include(cmake/opencv_config.cmake) + if (NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") diff --git a/app/Accuracy/CMakeLists.txt b/app/Accuracy/CMakeLists.txt index ee27dc455..b4010c218 100644 --- a/app/Accuracy/CMakeLists.txt +++ b/app/Accuracy/CMakeLists.txt @@ -4,7 +4,7 @@ add_library(ACCLib STATIC ${INCLUDE_HEADERS} ${SRC_FILES}) set_target_properties(ReadLib PROPERTIES LINKER_LANGUAGE CXX) -find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" ) +find_package( OpenCV REQUIRED PATHS "${OPENCV_BUILD_DIR}" ) include_directories( ${OpenCV_INCLUDE_DIRS} ) target_link_libraries( ACCLib ${OpenCV_LIBS} ) target_link_libraries( ACCLib TBB_unified) diff --git a/app/AccuracyImgNet/CMakeLists.txt b/app/AccuracyImgNet/CMakeLists.txt index f02a72063..a61fa703a 100644 --- a/app/AccuracyImgNet/CMakeLists.txt +++ b/app/AccuracyImgNet/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable(ACCImgNet accimgnet.cpp) -find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" ) +find_package( OpenCV REQUIRED PATHS "${OPENCV_BUILD_DIR}" ) include_directories( ${OpenCV_INCLUDE_DIRS} ) target_link_libraries( ACCImgNet ${OpenCV_LIBS} ) target_link_libraries( ACCImgNet TBB_unified) diff --git a/app/Graph/CMakeLists.txt b/app/Graph/CMakeLists.txt index 7c48d2b04..b5f2bc416 100644 --- a/app/Graph/CMakeLists.txt +++ b/app/Graph/CMakeLists.txt @@ -1,20 +1,10 @@ -file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build") - -execute_process( - COMMAND ${CMAKE_COMMAND} -S "${CMAKE_SOURCE_DIR}/3rdparty/opencv" -B "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_opencv_apps=OFF - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -) -execute_process( - COMMAND ${CMAKE_COMMAND} --build "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" --config "${CMAKE_BUILD_TYPE}" - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -) set(INCLUDE_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/build.hpp") set(SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/build.cpp") add_library(BuildGraph STATIC ${INCLUDE_HEADERS} ${SRC_FILES}) set_target_properties(BuildGraph PROPERTIES LINKER_LANGUAGE CXX) -find_package(OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build") +find_package(OpenCV REQUIRED PATHS "${OPENCV_BUILD_DIR}") include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(BuildGraph PUBLIC ${OpenCV_LIBS}) @@ -44,7 +34,7 @@ if (WIN32) endif() add_custom_command(TARGET Graph_Build POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build/bin/${CMAKE_BUILD_TYPE}/." + "${OPENCV_BUILD_DIR}/bin/${CMAKE_BUILD_TYPE}/." "${CMAKE_BINARY_DIR}/bin/") endif() @@ -57,7 +47,7 @@ if (WIN32) endif() add_custom_command(TARGET ACC_MNIST POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build/bin/${CMAKE_BUILD_TYPE}/." + "${OPENCV_BUILD_DIR}/bin/${CMAKE_BUILD_TYPE}/." "${CMAKE_BINARY_DIR}/bin/") endif() diff --git a/app/ReaderImage/CMakeLists.txt b/app/ReaderImage/CMakeLists.txt index 6bbf1d6cc..77e1c8437 100644 --- a/app/ReaderImage/CMakeLists.txt +++ b/app/ReaderImage/CMakeLists.txt @@ -1,13 +1,4 @@ -file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build") - -execute_process( - COMMAND ${CMAKE_COMMAND} -S "${CMAKE_SOURCE_DIR}/3rdparty/opencv" -B "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_opencv_apps=OFF - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -) -execute_process( - COMMAND ${CMAKE_COMMAND} --build "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" --config "${CMAKE_BUILD_TYPE}" - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" -) +file(MAKE_DIRECTORY "${OPENCV_BUILD_DIR}") set(INCLUDE_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/reader_img.hpp") set(SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/reader_img_s.cpp") @@ -16,7 +7,7 @@ add_library(ReadLib STATIC ${INCLUDE_HEADERS} ${SRC_FILES}) set_target_properties(ReadLib PROPERTIES LINKER_LANGUAGE CXX) -find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" ) +find_package( OpenCV REQUIRED PATHS "${OPENCV_BUILD_DIR}" ) include_directories( ${OpenCV_INCLUDE_DIRS} ) target_link_libraries( ReadLib ${OpenCV_LIBS} ) target_link_libraries( ReadLib TBB_unified) diff --git a/cmake/opencv_config.cmake b/cmake/opencv_config.cmake new file mode 100644 index 000000000..dc731973e --- /dev/null +++ b/cmake/opencv_config.cmake @@ -0,0 +1,21 @@ +set(OPENCV_BUILD_DIR "${CMAKE_BINARY_DIR}/3rdparty/opencv_build") +file(MAKE_DIRECTORY "${OPENCV_BUILD_DIR}") + +execute_process( + COMMAND ${CMAKE_COMMAND} + -S "${CMAKE_SOURCE_DIR}/3rdparty/opencv" + -B "${OPENCV_BUILD_DIR}" + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} + -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=OFF + -DBUILD_opencv_apps=OFF + WORKING_DIRECTORY "${OPENCV_BUILD_DIR}" +) + +execute_process( + COMMAND ${CMAKE_COMMAND} --build "${OPENCV_BUILD_DIR}" --config "${CMAKE_BUILD_TYPE}" + WORKING_DIRECTORY "${OPENCV_BUILD_DIR}" +) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5804592c6..53fc16345 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -29,7 +29,7 @@ if (WIN32) endif() add_custom_command(TARGET run_test POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build/bin/${CMAKE_BUILD_TYPE}/." + "${OPENCV_BUILD_DIR}/bin/${CMAKE_BUILD_TYPE}/." "${CMAKE_BINARY_DIR}/bin/") endif()