MetaFusion/scripts/dnacalib/CMakeModulesExtra/symbols/Symbols.cmake
2025-02-09 21:35:41 +08:00

26 lines
866 B
CMake

# Generate header file that contains preprocessor definitions for exporting symbols from shared libraries.
#
# Usage:
# include(Symbols)
# generate_export_definitions(
# OUTPUT_FILE /abs/path/to/include/mylib/Defs.h
# EXPORT_ATTR_NAME MLAPI
# BUILD_SHARED_NAME ML_BUILD_SHARED
# USE_SHARED_NAME ML_SHARED)
#
# Module dependencies:
# CMakeParseArguments
set(SYMBOLS_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
function(generate_export_definitions)
set(options)
set(one_value_args OUTPUT_FILE EXPORT_ATTR_NAME BUILD_SHARED_NAME USE_SHARED_NAME)
set(multi_value_args)
cmake_parse_arguments(DEF "${options}" "${one_value_args}" "${multi_value_args}" ${ARGN})
configure_file("${SYMBOLS_SOURCE_DIR}/Defs.h.in"
"${DEF_OUTPUT_FILE}"
@ONLY
NEWLINE_STYLE LF)
endfunction()