From 85d78a3ef0ccec312b7015617edbe92ec363f766 Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Fri, 21 Oct 2022 07:29:19 +0400 Subject: [PATCH] Build code snippets together with doc (#13541) * Build code snippets together with doc * Added separate step for code snippets * Try to enable CI step * Disabe myriad * Try to fix Windows * Detect number of cores * Reduced build time of code snippets --- .github/workflows/build_doc.yml | 4 +- .github/workflows/code_snippets.yml | 44 +++++++++++++++++++ docs/CMakeLists.txt | 37 +--------------- docs/snippets/CMakeLists.txt | 32 +++++++++++--- .../template_extension/new/CMakeLists.txt | 2 + .../template_extension/old/CMakeLists.txt | 3 ++ src/plugins/template/src/CMakeLists.txt | 3 ++ 7 files changed, 80 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/code_snippets.yml diff --git a/.github/workflows/build_doc.yml b/.github/workflows/build_doc.yml index 10666c9eaa1..dca6533b94c 100644 --- a/.github/workflows/build_doc.yml +++ b/.github/workflows/build_doc.yml @@ -44,10 +44,10 @@ jobs: mkdir build cd build cmake -DENABLE_DOCS=ON -DENABLE_PYTHON=ON -DCMAKE_BUILD_TYPE=Release .. - + - name: Build doc run: | - cmake --build . --target sphinx_docs -j8 + cmake --build . --target sphinx_docs -j`nproc` working-directory: build - name: Archive HTML diff --git a/.github/workflows/code_snippets.yml b/.github/workflows/code_snippets.yml new file mode 100644 index 00000000000..b11b1952852 --- /dev/null +++ b/.github/workflows/code_snippets.yml @@ -0,0 +1,44 @@ +name: Code snippets +on: + push: + paths: + - '.github/workflows/code_snippets.yml' + - 'docs/snippets/**' + pull_request: + paths: + - '.github/workflows/code_snippets.yml' + - 'docs/snippets/**' + +jobs: + Build: + strategy: + fail-fast: false + matrix: + os: ['ubuntu-22.04', 'macos-latest', 'windows-latest'] + runs-on: ${{ matrix.os }} + steps: + - name: Clone OpenVINO + uses: actions/checkout@v2 + with: + submodules: recursive + lfs: true + + - name: Check cmake + run: | + which cmake + cmake --version + + - name: CMake + run: | + mkdir build + cd build + cmake -DENABLE_INTEL_MYRIAD_COMMON=OFF -DCMAKE_BUILD_TYPE=Release .. + + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v1 + id: cpu-cores + + - name: Build snippets + run: | + cmake --build . --target ie_docs_snippets -j${{ steps.cpu-cores.outputs.count }} + working-directory: build diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 459aec4caca..354b9a1cfe5 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -2,42 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # -if(NOT ENABLE_DOCKER) - if(CMAKE_COMPILER_IS_GNUCXX) - ie_add_compiler_flags(-Wall) - endif() - - # Detect OpenVINO - find_package(OpenVINO QUIET - PATHS "${CMAKE_BINARY_DIR}" - NO_DEFAULT_PATH) - if(NOT OpenVINO_FOUND) - set(OpenVINO_DIR ${CMAKE_BINARY_DIR}) - endif() - - add_subdirectory(snippets) - - set(all_docs_targets - ie_docs_snippets ov_template_func_tests - template_extension openvino_template_extension openvino_template_plugin) - foreach(target_name IN LISTS all_docs_targets) - if(TARGET ${target_name}) - set_target_properties(${target_name} PROPERTIES FOLDER docs) - if(WIN32) - set_target_properties(${target_name} PROPERTIES COMPILE_PDB_NAME ${target_name}) - endif() - endif() - endforeach() - - # install - - foreach(target openvino_template_plugin template_extension openvino_template_extension) - if(TARGET ${target}) - install(TARGETS ${target} - LIBRARY DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL) - endif() - endforeach() -endif() +add_subdirectory(snippets) set(LINKCHECKER_PY "" CACHE FILEPATH "Path to linkchecker.py for documentation check dir.") set(ENABLE_OPENVINO_NOTEBOOKS OFF CACHE BOOL "Build with openvino notebooks") diff --git a/docs/snippets/CMakeLists.txt b/docs/snippets/CMakeLists.txt index 7ddf8838872..7f2e0e80813 100644 --- a/docs/snippets/CMakeLists.txt +++ b/docs/snippets/CMakeLists.txt @@ -4,6 +4,10 @@ set(TARGET_NAME ie_docs_snippets) +if(CMAKE_COMPILER_IS_GNUCXX) + ie_add_compiler_flags(-Wall) +endif() + if(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG) ie_add_compiler_flags(-Wno-unused-variable) if(CMAKE_COMPILER_IS_GNUCXX) @@ -12,6 +16,8 @@ if(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG) endif() file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/*.c" "${CMAKE_CURRENT_SOURCE_DIR}/vpu/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cpp") @@ -77,7 +83,17 @@ list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/dldt_optimization_guide2.c # create a static library add_library(${TARGET_NAME} STATIC ${SOURCES}) -target_include_directories(${TARGET_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src/core/template_extension/new/") +target_include_directories(${TARGET_NAME} PRIVATE "${OpenVINO_SOURCE_DIR}/src/inference/include/ie" + "${OpenVINO_SOURCE_DIR}/src/inference/include" + "${OpenVINO_SOURCE_DIR}/src/inference/dev_api" + "${OpenVINO_SOURCE_DIR}/src/core/include" + "${OpenVINO_SOURCE_DIR}/src/bindings/c/include" + "${OpenVINO_SOURCE_DIR}/src/common/transformations/include" + "${OpenVINO_SOURCE_DIR}/src/common/preprocessing" + "${OpenVINO_SOURCE_DIR}/src/common/util/include" + "${OpenVINO_SOURCE_DIR}/src/common/low_precision_transformations/include" + "${OpenVINO_SOURCE_DIR}/src/frontends/common/include" + "${OpenVINO_SOURCE_DIR}/src/core/template_extension/new/") if(OpenCL_FOUND AND OpenCL_HEADERS) target_link_libraries(${TARGET_NAME} PRIVATE ${OpenCL_LIB}) @@ -99,17 +115,19 @@ if(OpenCV_FOUND) target_link_libraries(${TARGET_NAME} PRIVATE opencv_core) endif() -if(ENABLE_OV_ONNX_FRONTEND) - target_link_libraries(${TARGET_NAME} PRIVATE openvino_onnx_frontend) -endif() - -target_link_libraries(${TARGET_NAME} PRIVATE openvino::runtime openvino::runtime::dev) - # ov_ncc_naming_style(FOR_TARGET "${TARGET_NAME}" # SOURCE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" # ADDITIONAL_INCLUDE_DIRECTORIES # $) +# Detect OpenVINO +find_package(OpenVINO QUIET + PATHS "${CMAKE_BINARY_DIR}" + NO_DEFAULT_PATH) +if(NOT OpenVINO_FOUND) + set(OpenVINO_DIR ${CMAKE_BINARY_DIR}) +endif() + # # Example # diff --git a/src/core/template_extension/new/CMakeLists.txt b/src/core/template_extension/new/CMakeLists.txt index d461025c7f7..8f699a24133 100644 --- a/src/core/template_extension/new/CMakeLists.txt +++ b/src/core/template_extension/new/CMakeLists.txt @@ -16,3 +16,5 @@ add_library(${TARGET_NAME} MODULE ${SRC}) target_compile_definitions(${TARGET_NAME} PRIVATE IMPLEMENT_OPENVINO_EXTENSION_API) target_link_libraries(${TARGET_NAME} PRIVATE openvino::runtime) # [cmake:extension] +install(TARGETS ${TARGET_NAME} + LIBRARY DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL) diff --git a/src/core/template_extension/old/CMakeLists.txt b/src/core/template_extension/old/CMakeLists.txt index 649dd0815af..733c3a92ff4 100644 --- a/src/core/template_extension/old/CMakeLists.txt +++ b/src/core/template_extension/old/CMakeLists.txt @@ -35,3 +35,6 @@ endif() # Enable code style check file(GLOB_RECURSE template_extension_src "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp") add_clang_format_target(${TARGET_NAME}_clang FOR_SOURCES ${template_extension_src}) + +install(TARGETS ${TARGET_NAME} + LIBRARY DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL) diff --git a/src/plugins/template/src/CMakeLists.txt b/src/plugins/template/src/CMakeLists.txt index 5e50df12593..bf7c1317cbe 100644 --- a/src/plugins/template/src/CMakeLists.txt +++ b/src/plugins/template/src/CMakeLists.txt @@ -40,3 +40,6 @@ if (ENABLE_TEMPLATE_REGISTRATION) ov_register_plugins(MAIN_TARGET ${TARGET_NAME}) endif() # [cmake:plugin] + +install(TARGETS ${TARGET_NAME} + LIBRARY DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL)