FreeRDP/cmake/ComplexLibrary.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)