Minimize rebuild for Makefiles generator (#16729)
* Add dependency from ov_plugins.hpp only for files which use it * Remove rebuild files depends on CI_BUILD_NUMBER changes * Try to fix static build * Fixed comments * Fixed build * Merged some change * Try to fix build * Try to fix nvidia build * Take LTO value from target property
This commit is contained in:
@@ -49,10 +49,6 @@ function(ie_add_plugin)
|
||||
# create and configure target
|
||||
|
||||
if(NOT IE_PLUGIN_PSEUDO_PLUGIN_FOR)
|
||||
if(IE_PLUGIN_VERSION_DEFINES_FOR)
|
||||
addVersionDefines(${IE_PLUGIN_VERSION_DEFINES_FOR} CI_BUILD_NUMBER)
|
||||
endif()
|
||||
|
||||
set(input_files ${IE_PLUGIN_SOURCES})
|
||||
foreach(obj_lib IN LISTS IE_PLUGIN_OBJECT_LIBRARIES)
|
||||
list(APPEND input_files $<TARGET_OBJECTS:${obj_lib}>)
|
||||
@@ -67,6 +63,10 @@ function(ie_add_plugin)
|
||||
|
||||
add_library(${IE_PLUGIN_NAME} ${library_type} ${input_files})
|
||||
|
||||
if(IE_PLUGIN_VERSION_DEFINES_FOR)
|
||||
ov_add_version_defines(${IE_PLUGIN_VERSION_DEFINES_FOR} ${IE_PLUGIN_NAME})
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${IE_PLUGIN_NAME} PRIVATE IMPLEMENT_INFERENCE_ENGINE_PLUGIN)
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
# to distinguish functions creating plugin objects
|
||||
@@ -351,21 +351,4 @@ function(ov_generate_plugins_hpp)
|
||||
# so, we have to use explicit target and make it dependency for inference_engine
|
||||
add_custom_target(_ov_plugins_hpp DEPENDS ${ov_plugins_hpp})
|
||||
add_dependencies(inference_engine_obj _ov_plugins_hpp)
|
||||
|
||||
# add dependency for object files
|
||||
get_target_property(sources inference_engine_obj SOURCES)
|
||||
foreach(source IN LISTS sources)
|
||||
if("${source}" MATCHES "\\$\\<TARGET_OBJECTS\\:([A-Za-z0-9_]*)\\>")
|
||||
# object library
|
||||
set(obj_library ${CMAKE_MATCH_1})
|
||||
get_target_property(obj_sources ${obj_library} SOURCES)
|
||||
list(APPEND all_sources ${obj_sources})
|
||||
else()
|
||||
# usual source
|
||||
list(APPEND all_sources ${source})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# add dependency on header file generation for all inference_engine source files
|
||||
set_source_files_properties(${all_sources} PROPERTIES OBJECT_DEPENDS ${ov_plugins_hpp})
|
||||
endfunction()
|
||||
|
||||
@@ -185,6 +185,46 @@ macro (addVersionDefines FILE)
|
||||
unset(__version_file)
|
||||
endmacro()
|
||||
|
||||
macro (ov_add_version_defines FILE TARGET)
|
||||
set(__version_file ${FILE})
|
||||
if(NOT IS_ABSOLUTE ${__version_file})
|
||||
set(__version_file "${CMAKE_CURRENT_SOURCE_DIR}/${__version_file}")
|
||||
endif()
|
||||
if(NOT EXISTS ${__version_file})
|
||||
message(FATAL_ERROR "${FILE} does not exists in current source directory")
|
||||
endif()
|
||||
_remove_source_from_target(${TARGET} ${FILE})
|
||||
_remove_source_from_target(${TARGET} ${__version_file})
|
||||
if (BUILD_SHARED_LIBS)
|
||||
add_library(${TARGET}_version OBJECT ${__version_file})
|
||||
else()
|
||||
add_library(${TARGET}_version STATIC ${__version_file})
|
||||
endif()
|
||||
if(SUGGEST_OVERRIDE_SUPPORTED)
|
||||
set_source_files_properties(${__version_file}
|
||||
PROPERTIES COMPILE_OPTIONS -Wno-suggest-override)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${TARGET}_version PRIVATE
|
||||
CI_BUILD_NUMBER=\"${CI_BUILD_NUMBER}\"
|
||||
$<TARGET_PROPERTY:${TARGET},INTERFACE_COMPILE_DEFINITIONS>
|
||||
$<TARGET_PROPERTY:${TARGET},COMPILE_DEFINITIONS>)
|
||||
target_include_directories(${TARGET}_version PRIVATE
|
||||
$<TARGET_PROPERTY:${TARGET},INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>)
|
||||
target_link_libraries(${TARGET}_version PRIVATE
|
||||
$<TARGET_PROPERTY:${TARGET},LINK_LIBRARIES>)
|
||||
target_compile_options(${TARGET}_version PRIVATE
|
||||
$<TARGET_PROPERTY:${TARGET},INTERFACE_COMPILE_OPTIONS>
|
||||
$<TARGET_PROPERTY:${TARGET},COMPILE_OPTIONS>)
|
||||
set_target_properties(${TARGET}_version
|
||||
PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE
|
||||
$<TARGET_PROPERTY:${TARGET},INTERPROCEDURAL_OPTIMIZATION_RELEASE>)
|
||||
|
||||
target_sources(${TARGET} PRIVATE $<TARGET_OBJECTS:${TARGET}_version>)
|
||||
unset(__version_file)
|
||||
endmacro()
|
||||
|
||||
function(ov_add_library_version library)
|
||||
if(NOT DEFINED OpenVINO_SOVERSION)
|
||||
message(FATAL_ERROR "Internal error: OpenVINO_SOVERSION is not defined")
|
||||
|
||||
@@ -78,7 +78,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO}
|
||||
OUTPUT_NAME "_pyopenvino")
|
||||
|
||||
addVersionDefines(pyopenvino.cpp CI_BUILD_NUMBER)
|
||||
ov_add_version_defines(pyopenvino.cpp ${PROJECT_NAME})
|
||||
|
||||
if(OV_GENERATOR_MULTI_CONFIG)
|
||||
string(APPEND _cmd_echo
|
||||
|
||||
@@ -20,8 +20,10 @@ endif()
|
||||
|
||||
add_library(${TARGET_NAME}
|
||||
$<TARGET_OBJECTS:ngraph_obj>
|
||||
$<TARGET_OBJECTS:ngraph_obj_version>
|
||||
$<TARGET_OBJECTS:frontend_common_obj>
|
||||
$<TARGET_OBJECTS:inference_engine_obj>
|
||||
$<TARGET_OBJECTS:inference_engine_obj_version>
|
||||
$<TARGET_OBJECTS:inference_engine_transformations_obj>
|
||||
$<TARGET_OBJECTS:inference_engine_lp_transformations_obj>)
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ ie_faster_build(ngraph_obj
|
||||
UNITY
|
||||
PCH PRIVATE "src/precomp.hpp")
|
||||
|
||||
addVersionDefines(src/version.cpp CI_BUILD_NUMBER)
|
||||
ov_add_version_defines(src/version.cpp ngraph_obj)
|
||||
|
||||
target_link_libraries(ngraph_obj PRIVATE ngraph::builder ngraph::reference openvino::util
|
||||
openvino::pugixml ov_shape_inference openvino::core::dev)
|
||||
|
||||
@@ -79,8 +79,6 @@ if(ENABLE_SSE42)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
addVersionDefines(src/ie_version.cpp CI_BUILD_NUMBER)
|
||||
|
||||
set (PUBLIC_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
|
||||
file (GLOB_RECURSE PUBLIC_HEADERS
|
||||
@@ -130,6 +128,8 @@ add_library(${TARGET_NAME}_obj OBJECT
|
||||
${LIBRARY_HEADERS}
|
||||
${PUBLIC_HEADERS})
|
||||
|
||||
ov_add_version_defines(src/ie_version.cpp ${TARGET_NAME}_obj)
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(${TARGET_NAME}_obj PUBLIC OPENVINO_STATIC_LIBRARY)
|
||||
endif()
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
set(TARGET_NAME ov_auto_batch_unit_tests)
|
||||
|
||||
set(CI_BUILD_NUMBER "unittest")
|
||||
addVersionDefines(${OpenVINO_SOURCE_DIR}/src/plugins/auto_batch/src/auto_batch.cpp CI_BUILD_NUMBER)
|
||||
add_definitions(-DAUTOBATCH_UNITTEST)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
@@ -52,5 +51,6 @@ addIeTargetTest(
|
||||
LABELS
|
||||
Auto_Batch
|
||||
)
|
||||
ov_add_version_defines(${OpenVINO_SOURCE_DIR}/src/plugins/auto_batch/src/auto_batch.cpp ${TARGET_NAME})
|
||||
|
||||
set_ie_threading_interface_for(${TARGET_NAME})
|
||||
|
||||
@@ -32,8 +32,6 @@ file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
|
||||
file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp)
|
||||
|
||||
addVersionDefines(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin.cpp CI_BUILD_NUMBER)
|
||||
|
||||
add_subdirectory(thirdparty)
|
||||
|
||||
if(ENABLE_TESTS)
|
||||
@@ -45,6 +43,7 @@ endif()
|
||||
ie_add_plugin(NAME ${TARGET_NAME}
|
||||
DEVICE_NAME "CPU"
|
||||
AS_EXTENSION
|
||||
VERSION_DEFINES_FOR src/plugin.cpp
|
||||
SOURCES ${SOURCES} ${HEADERS})
|
||||
|
||||
set_ie_threading_interface_for(${TARGET_NAME})
|
||||
@@ -81,6 +80,8 @@ if(BUILD_SHARED_LIBS)
|
||||
add_library(${TARGET_NAME}_obj OBJECT ${SOURCES} ${HEADERS})
|
||||
link_system_libraries(${TARGET_NAME}_obj PUBLIC dnnl openvino::pugixml)
|
||||
|
||||
ov_add_version_defines(src/plugin.cpp ${TARGET_NAME}_obj)
|
||||
|
||||
target_include_directories(${TARGET_NAME}_obj
|
||||
PRIVATE
|
||||
$<TARGET_PROPERTY:openvino::runtime::dev,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
|
||||
@@ -43,8 +43,6 @@ file(GLOB_RECURSE HEADERS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp)
|
||||
|
||||
addVersionDefines(src/gna_plugin_entry_points.cpp CI_BUILD_NUMBER)
|
||||
|
||||
find_package(libGNA REQUIRED
|
||||
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
|
||||
NO_DEFAULT_PATH)
|
||||
@@ -56,6 +54,7 @@ find_package(libGNA REQUIRED
|
||||
ie_add_plugin(NAME ${TARGET_NAME}
|
||||
DEVICE_NAME "GNA"
|
||||
SOURCES ${SOURCES} ${HEADERS}
|
||||
VERSION_DEFINES_FOR src/gna_plugin_entry_points.cpp
|
||||
ADD_CLANG_FORMAT)
|
||||
|
||||
# Enable support of CC for the plugin
|
||||
@@ -79,6 +78,8 @@ ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})
|
||||
|
||||
add_library(${TARGET_NAME}_test_static STATIC EXCLUDE_FROM_ALL ${SOURCES} ${HEADERS})
|
||||
|
||||
ov_add_version_defines(src/gna_plugin_entry_points.cpp ${TARGET_NAME}_test_static)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}_test_static
|
||||
PRIVATE
|
||||
_NO_MKL_
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
set(TARGET_NAME ieMultiPluginUnitTests)
|
||||
|
||||
set(CI_BUILD_NUMBER "unittest")
|
||||
addVersionDefines(${OpenVINO_SOURCE_DIR}/src/plugins/auto/plugin.cpp CI_BUILD_NUMBER)
|
||||
add_definitions(-DMULTIUNITTEST)
|
||||
|
||||
addIeTargetTest(
|
||||
@@ -28,5 +27,6 @@ addIeTargetTest(
|
||||
Multi
|
||||
Auto
|
||||
)
|
||||
ov_add_version_defines(${OpenVINO_SOURCE_DIR}/src/plugins/auto/plugin.cpp ${TARGET_NAME})
|
||||
|
||||
set_ie_threading_interface_for(${TARGET_NAME})
|
||||
|
||||
Reference in New Issue
Block a user