mirror of
https://github.com/SFML/SFML.git
synced 2024-11-28 22:31:09 +08:00
Replaced the custom sfml_parse_arguments CMake macro with the standard equivalent cmake_parse_arguments
This commit is contained in:
parent
d077210750
commit
c697623689
@ -1,4 +1,4 @@
|
|||||||
# some of these macros are inspired from the boost/cmake macros
|
include(CMakeParseArguments)
|
||||||
|
|
||||||
# this macro adds external dependencies to a static target,
|
# this macro adds external dependencies to a static target,
|
||||||
# compensating for the lack of a link step when building a static library.
|
# compensating for the lack of a link step when building a static library.
|
||||||
@ -52,50 +52,6 @@ macro(sfml_static_add_libraries target)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# check if a value is contained in a list
|
|
||||||
# sets ${var} to TRUE if the value is found
|
|
||||||
macro(sfml_list_contains var value)
|
|
||||||
set(${var})
|
|
||||||
foreach(value2 ${ARGN})
|
|
||||||
if(${value} STREQUAL ${value2})
|
|
||||||
set(${var} TRUE)
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# parse a list of arguments and options
|
|
||||||
# ex: sfml_parse_arguments(THIS "SOURCES;DEPENDS" "FLAG" FLAG SOURCES s1 s2 s3 DEPENDS d1 d2)
|
|
||||||
# will define the following variables:
|
|
||||||
# - THIS_SOURCES (s1 s2 s3)
|
|
||||||
# - THIS_DEPENDS (d1 d2)
|
|
||||||
# - THIS_FLAG TRUE
|
|
||||||
macro(sfml_parse_arguments prefix arg_names option_names)
|
|
||||||
foreach(arg_name ${arg_names})
|
|
||||||
set(${prefix}_${arg_name})
|
|
||||||
endforeach()
|
|
||||||
foreach(option_name ${option_names})
|
|
||||||
set(${prefix}_${option_name} FALSE)
|
|
||||||
endforeach()
|
|
||||||
set(current_arg_name)
|
|
||||||
set(current_arg_list)
|
|
||||||
foreach(arg ${ARGN})
|
|
||||||
sfml_list_contains(is_arg_name ${arg} ${arg_names})
|
|
||||||
if(is_arg_name)
|
|
||||||
set(${prefix}_${current_arg_name} ${current_arg_list})
|
|
||||||
set(current_arg_name ${arg})
|
|
||||||
set(current_arg_list)
|
|
||||||
else()
|
|
||||||
sfml_list_contains(is_option ${arg} ${option_names})
|
|
||||||
if(is_option)
|
|
||||||
set(${prefix}_${arg} TRUE)
|
|
||||||
else()
|
|
||||||
set(current_arg_list ${current_arg_list} ${arg})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
set(${prefix}_${current_arg_name} ${current_arg_list})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# add a new target which is a SFML library
|
# add a new target which is a SFML library
|
||||||
# ex: sfml_add_library(sfml-graphics
|
# ex: sfml_add_library(sfml-graphics
|
||||||
# SOURCES sprite.cpp image.cpp ...
|
# SOURCES sprite.cpp image.cpp ...
|
||||||
@ -104,7 +60,7 @@ endmacro()
|
|||||||
macro(sfml_add_library target)
|
macro(sfml_add_library target)
|
||||||
|
|
||||||
# parse the arguments
|
# parse the arguments
|
||||||
sfml_parse_arguments(THIS "SOURCES;DEPENDS;EXTERNAL_LIBS" "" ${ARGN})
|
cmake_parse_arguments(THIS "" "" "SOURCES;DEPENDS;EXTERNAL_LIBS" ${ARGN})
|
||||||
|
|
||||||
# create the target
|
# create the target
|
||||||
add_library(${target} ${THIS_SOURCES})
|
add_library(${target} ${THIS_SOURCES})
|
||||||
@ -206,7 +162,7 @@ endmacro()
|
|||||||
macro(sfml_add_example target)
|
macro(sfml_add_example target)
|
||||||
|
|
||||||
# parse the arguments
|
# parse the arguments
|
||||||
sfml_parse_arguments(THIS "SOURCES;DEPENDS" "GUI_APP" ${ARGN})
|
cmake_parse_arguments(THIS "GUI_APP" "" "SOURCES;DEPENDS" ${ARGN})
|
||||||
|
|
||||||
# set a source group for the source files
|
# set a source group for the source files
|
||||||
source_group("" FILES ${THIS_SOURCES})
|
source_group("" FILES ${THIS_SOURCES})
|
||||||
@ -253,4 +209,5 @@ macro(sfml_add_example target)
|
|||||||
DESTINATION ${INSTALL_MISC_DIR}/examples/${target}
|
DESTINATION ${INSTALL_MISC_DIR}/examples/${target}
|
||||||
COMPONENT examples)
|
COMPONENT examples)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
Loading…
Reference in New Issue
Block a user