2018-11-20 00:48:22 +00:00
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
2019-04-29 19:58:20 +00:00
file ( GLOB_RECURSE onnxruntime_graph_src CONFIGURE_DEPENDS
2019-03-26 19:31:36 +00:00
" $ { O N N X R U N T I M E _ I N C L U D E _ D I R } / c o r e / g r a p h / * . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / * . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / * . c c "
)
2020-08-21 21:14:53 +00:00
# create empty list for any excludes
set ( onnxruntime_graph_src_exclude_patterns )
if ( onnxruntime_MINIMAL_BUILD )
2020-08-22 21:02:13 +00:00
# remove schema registration support
2020-08-21 21:14:53 +00:00
list ( APPEND onnxruntime_graph_src_exclude_patterns
2020-08-22 21:02:13 +00:00
" $ { O N N X R U N T I M E _ I N C L U D E _ D I R } / c o r e / g r a p h / s c h e m a _ r e g i s t r y . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / s c h e m a _ r e g i s t r y . c c "
2020-08-21 21:14:53 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / * d e f s . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / * d e f s . c c "
2022-02-09 17:31:58 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / o n n x _ d e p r e c a t e d _ o p e r a t o r s . c c "
2021-03-25 18:34:06 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / o n n x _ f u n c t i o n _ u t i l . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / o n n x _ f u n c t i o n _ u t i l . c c "
2022-04-29 17:15:58 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / f u n c t i o n _ t e m p l a t e . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / f u n c t i o n _ u t i l s . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / f u n c t i o n _ u t i l s . c c "
2020-08-21 21:14:53 +00:00
)
# no Function support initially
list ( APPEND onnxruntime_graph_src_exclude_patterns
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / f u n c t i o n * "
)
2022-05-05 15:30:07 +00:00
# remove graph proto serializer
list ( APPEND onnxruntime_graph_src_exclude_patterns
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / g r a p h _ p r o t o _ s e r i a l i z e r . c c "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / g r a p h _ p r o t o _ s e r i a l i z e r . h "
)
2021-08-27 07:16:05 +00:00
# no optimizer support in base minimal build
# some optimizer support in extended minimal build
if ( NOT onnxruntime_EXTENDED_MINIMAL_BUILD )
list ( APPEND onnxruntime_graph_src_exclude_patterns
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / g r a p h _ u t i l s . * "
)
endif ( )
2020-08-21 21:14:53 +00:00
endif ( )
2019-03-26 19:31:36 +00:00
if ( onnxruntime_DISABLE_CONTRIB_OPS )
2020-08-21 21:14:53 +00:00
list ( APPEND onnxruntime_graph_src_exclude_patterns
2019-03-26 19:31:36 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / * . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / c o n t r i b _ o p s / * . c c "
)
endif ( )
2018-11-20 00:48:22 +00:00
2019-10-15 13:13:07 +00:00
if ( NOT onnxruntime_USE_DML )
2020-08-21 21:14:53 +00:00
list ( APPEND onnxruntime_graph_src_exclude_patterns
2019-10-15 13:13:07 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / d m l _ o p s / * . h "
" $ { O N N X R U N T I M E _ R O O T } / c o r e / g r a p h / d m l _ o p s / * . c c "
)
endif ( )
2020-08-21 21:14:53 +00:00
file ( GLOB onnxruntime_graph_src_exclude ${ onnxruntime_graph_src_exclude_patterns } )
list ( REMOVE_ITEM onnxruntime_graph_src ${ onnxruntime_graph_src_exclude } )
2019-04-29 19:58:20 +00:00
file ( GLOB_RECURSE onnxruntime_ir_defs_src CONFIGURE_DEPENDS
2020-03-11 21:25:37 +00:00
" $ { O N N X R U N T I M E _ R O O T } / c o r e / d e f s / * . c c "
2018-11-20 00:48:22 +00:00
)
2021-05-21 20:06:14 +00:00
if ( onnxruntime_ENABLE_TRAINING_OPS AND NOT onnxruntime_ENABLE_TRAINING )
set ( orttraining_graph_src
" $ { O R T T R A I N I N G _ S O U R C E _ D I R } / c o r e / g r a p h / t r a i n i n g _ o p _ d e f s . c c "
" $ { O R T T R A I N I N G _ S O U R C E _ D I R } / c o r e / g r a p h / t r a i n i n g _ o p _ d e f s . h "
)
endif ( )
2020-03-11 21:25:37 +00:00
if ( onnxruntime_ENABLE_TRAINING )
file ( GLOB_RECURSE orttraining_graph_src CONFIGURE_DEPENDS
" $ { O R T T R A I N I N G _ S O U R C E _ D I R } / c o r e / g r a p h / * . h "
" $ { O R T T R A I N I N G _ S O U R C E _ D I R } / c o r e / g r a p h / * . c c "
)
endif ( )
set ( onnxruntime_graph_lib_src ${ onnxruntime_graph_src } ${ onnxruntime_ir_defs_src } )
2021-05-21 20:06:14 +00:00
if ( onnxruntime_ENABLE_TRAINING OR onnxruntime_ENABLE_TRAINING_OPS )
2020-03-11 21:25:37 +00:00
list ( APPEND onnxruntime_graph_lib_src ${ orttraining_graph_src } )
endif ( )
2021-04-29 18:54:57 +00:00
onnxruntime_add_static_library ( onnxruntime_graph ${ onnxruntime_graph_lib_src } )
2020-09-01 01:51:31 +00:00
add_dependencies ( onnxruntime_graph onnx_proto flatbuffers )
2021-06-03 06:36:49 +00:00
onnxruntime_add_include_to_target ( onnxruntime_graph onnxruntime_common onnx onnx_proto ${ PROTOBUF_LIB } flatbuffers )
2021-07-31 00:16:37 +00:00
if ( NOT MSVC )
target_compile_options ( onnxruntime_graph PRIVATE "-Wno-parentheses" )
endif ( )
2020-06-24 03:18:16 +00:00
if ( onnxruntime_ENABLE_TRAINING )
#TODO: the graph library should focus on ONNX IR, it shouldn't depend on math libraries like MKLML/OpenBlas
target_include_directories ( onnxruntime_graph PRIVATE ${ MKLML_INCLUDE_DIR } )
2021-07-23 08:53:26 +00:00
target_link_libraries ( onnxruntime_graph PRIVATE nlohmann_json::nlohmann_json )
2020-06-24 03:18:16 +00:00
endif ( )
2018-11-20 00:48:22 +00:00
target_include_directories ( onnxruntime_graph PRIVATE ${ ONNXRUNTIME_ROOT } )
2020-03-11 21:25:37 +00:00
2021-05-21 20:06:14 +00:00
if ( onnxruntime_ENABLE_TRAINING OR onnxruntime_ENABLE_TRAINING_OPS )
2020-03-11 21:25:37 +00:00
target_include_directories ( onnxruntime_graph PRIVATE ${ ORTTRAINING_ROOT } )
2020-06-15 15:47:03 +00:00
2020-09-09 16:39:56 +00:00
if ( onnxruntime_USE_NCCL )
target_include_directories ( onnxruntime_graph PRIVATE ${ NCCL_INCLUDE_DIRS } )
endif ( )
2020-03-11 21:25:37 +00:00
endif ( )
2018-11-20 00:48:22 +00:00
set_target_properties ( onnxruntime_graph PROPERTIES FOLDER "ONNXRuntime" )
set_target_properties ( onnxruntime_graph PROPERTIES LINKER_LANGUAGE CXX )
2018-11-23 04:56:43 +00:00
install ( DIRECTORY ${ PROJECT_SOURCE_DIR } /../include/onnxruntime/core/graph DESTINATION ${ CMAKE_INSTALL_INCLUDEDIR } /onnxruntime/core )
2018-11-20 00:48:22 +00:00
source_group ( TREE ${ REPO_ROOT } FILES ${ onnxruntime_graph_src } ${ onnxruntime_ir_defs_src } )
2021-05-21 20:06:14 +00:00
if ( onnxruntime_ENABLE_TRAINING OR onnxruntime_ENABLE_TRAINING_OPS )
2020-03-11 21:25:37 +00:00
source_group ( TREE ${ ORTTRAINING_ROOT } FILES ${ orttraining_graph_src } )
endif ( )
2018-11-20 00:48:22 +00:00
2021-02-12 22:17:10 +00:00
if ( onnxruntime_BUILD_MS_EXPERIMENTAL_OPS )
target_compile_definitions ( onnxruntime_graph PRIVATE BUILD_MS_EXPERIMENTAL_OPS=1 )
endif ( )
2018-11-20 00:48:22 +00:00
if ( WIN32 )
2020-09-04 21:59:01 +00:00
set ( onnxruntime_graph_static_library_flags
- I G N O R E : 4 2 2 1 # LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
)
2019-03-21 21:06:38 +00:00
2020-09-04 21:59:01 +00:00
set_target_properties ( onnxruntime_graph PROPERTIES
S T A T I C _ L I B R A R Y _ F L A G S " $ { o n n x r u n t i m e _ g r a p h _ s t a t i c _ l i b r a r y _ f l a g s } " )
2019-03-21 21:06:38 +00:00
2022-06-09 08:07:30 +00:00
if ( NOT onnxruntime_DISABLE_EXCEPTIONS )
2018-11-20 00:48:22 +00:00
target_compile_options ( onnxruntime_graph PRIVATE
/ E H s c # exception handling - C++ may throw, extern "C" will not
)
2022-06-09 08:07:30 +00:00
endif ( )
endif ( )
if ( onnxruntime_ENABLE_ATEN )
target_compile_definitions ( onnxruntime_graph PRIVATE ENABLE_ATEN )
2018-11-20 00:48:22 +00:00
endif ( )
2022-04-04 05:37:18 +00:00
if ( NOT onnxruntime_BUILD_SHARED_LIB )
install ( TARGETS onnxruntime_graph
A R C H I V E D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ L I B D I R }
L I B R A R Y D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ L I B D I R }
R U N T I M E D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ B I N D I R }
F R A M E W O R K D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ B I N D I R } )
endif ( )