58 lines
1.4 KiB
CMake
58 lines
1.4 KiB
CMake
macro(WAGIC_OPTION variable description value)
|
|
set(__value ${value})
|
|
set(__condition "")
|
|
set(__varname "__value")
|
|
foreach(arg ${ARGN})
|
|
if(arg STREQUAL "IF" OR arg STREQUAL "if")
|
|
set(__varname "__condition")
|
|
else()
|
|
list(APPEND ${__varname} ${arg})
|
|
endif()
|
|
endforeach()
|
|
unset(__varname)
|
|
if("${__condition}" STREQUAL "")
|
|
set(__condition 2 GREATER 1)
|
|
endif()
|
|
|
|
if(${__condition})
|
|
if("${__value}" MATCHES ";")
|
|
if(${__value})
|
|
option(${variable} "${description}" ON)
|
|
else()
|
|
option(${variable} "${description}" OFF)
|
|
endif()
|
|
elseif(DEFINED ${__value})
|
|
if(${__value})
|
|
option(${variable} "${description}" ON)
|
|
else()
|
|
option(${variable} "${description}" OFF)
|
|
endif()
|
|
else()
|
|
option(${variable} "${description}" ${__value})
|
|
endif()
|
|
else()
|
|
unset(${variable} CACHE)
|
|
endif()
|
|
unset(__condition)
|
|
unset(__value)
|
|
endmacro()
|
|
|
|
# add prefix to each item in the list
|
|
macro(list_add_prefix LST PREFIX)
|
|
set(__tmp "")
|
|
foreach(item ${${LST}})
|
|
list(APPEND __tmp "${PREFIX}${item}")
|
|
endforeach()
|
|
set(${LST} ${__tmp})
|
|
unset(__tmp)
|
|
endmacro()
|
|
|
|
|
|
macro(find_host_program)
|
|
set(_find_program ${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM})
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
find_program(${ARGN})
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${_find_program})
|
|
unset(_find_program)
|
|
endmacro()
|