49 lines
958 B
CMake
49 lines
958 B
CMake
|
|
||
|
include(CMakeParseArguments)
|
||
|
|
||
|
macro(set_complex_link_libraries)
|
||
|
|
||
|
set(PREFIX "COMPLEX_LIBRARY")
|
||
|
|
||
|
cmake_parse_arguments(${PREFIX}
|
||
|
"INTERNAL"
|
||
|
"MODULE;VARIABLE;MONOLITHIC"
|
||
|
"MODULES"
|
||
|
${ARGN})
|
||
|
|
||
|
if(NOT DEFINED ${PREFIX}_MONOLITHIC)
|
||
|
set(${PREFIX}_MONOLITHIC FALSE)
|
||
|
endif()
|
||
|
|
||
|
if(${${PREFIX}_MONOLITHIC})
|
||
|
if(${${PREFIX}_INTERNAL})
|
||
|
set(${PREFIX}_LIBS)
|
||
|
else()
|
||
|
set(${PREFIX}_LIBS ${${PREFIX}_MODULE})
|
||
|
endif()
|
||
|
else()
|
||
|
set(${PREFIX}_LIBS ${${PREFIX}_MODULES})
|
||
|
endif()
|
||
|
|
||
|
set(${${PREFIX}_VARIABLE} ${${${PREFIX}_VARIABLE}} ${${PREFIX}_LIBS})
|
||
|
|
||
|
endmacro(set_complex_link_libraries)
|
||
|
|
||
|
macro(add_complex_library)
|
||
|
|
||
|
set(PREFIX "COMPLEX_LIBRARY")
|
||
|
|
||
|
cmake_parse_arguments(${PREFIX}
|
||
|
""
|
||
|
"MODULE;TYPE;MONOLITHIC"
|
||
|
"SOURCES"
|
||
|
${ARGN})
|
||
|
|
||
|
if(${${PREFIX}_MONOLITHIC})
|
||
|
add_library(${${PREFIX}_MODULE} ${${PREFIX}_TYPE} ${${PREFIX}_SOURCES})
|
||
|
else()
|
||
|
add_library(${${PREFIX}_MODULE} ${${PREFIX}_SOURCES})
|
||
|
endif()
|
||
|
|
||
|
endmacro(add_complex_library)
|