26 lines
866 B
CMake
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()
|