mxwcore-wotlk/deps/acore/cmake-utils/utils.cmake

138 lines
2.7 KiB
CMake
Raw Normal View History

2023-11-07 05:04:30 -05:00
#
# CU_SUBDIRLIST
#
FUNCTION(CU_SUBDIRLIST result curdir recursive includeRoot)
# glob recurse seem's doesn't work
FILE(GLOB children RELATIVE ${curdir} "${curdir}/[^\\.]*")
if (${includeRoot})
SET(dirlist "${curdir}")
else()
SET(dirlist "")
endif()
FOREACH(child ${children})
IF(IS_DIRECTORY "${curdir}/${child}")
if (${recursive})
CU_SUBDIRLIST(sub_Dirs "${curdir}/${child}" TRUE FALSE)
SET(dirlist "${curdir}/${child}" ${sub_Dirs} ${dirlist})
else()
SET(dirlist "${curdir}/${child}" ${dirlist})
endif()
ENDIF()
ENDFOREACH()
SET(${result} ${dirlist} PARENT_SCOPE)
ENDFUNCTION(CU_SUBDIRLIST result curdir recursive)
#
# CU_SET_GLOBAL
#
MACRO(CU_SET_GLOBAL name val)
set_property ( GLOBAL PROPERTY ${name} ${val})
# after set , create the variable for current scope
CU_GET_GLOBAL(${name})
ENDMACRO()
MACRO(CU_ADD_GLOBAL name val)
CU_GET_GLOBAL(${name})
set_property ( GLOBAL PROPERTY ${name}
${${name}}
${val}
)
# after set , create the variable for current scope
CU_GET_GLOBAL(${name})
ENDMACRO()
#
# CU_GET_GLOBAL
#
MACRO(CU_GET_GLOBAL name)
get_property(${name} GLOBAL PROPERTY ${name})
ENDMACRO()
#
# CU_SET_CACHE
#
MACRO(CU_SET_CACHE name val)
set(${name} ${val} CACHE INTERNAL "CU Var")
ENDMACRO()
#
# CU_LIST_ADD_CACHE
#
MACRO(CU_LIST_ADD_CACHE name val)
# avoid duplicates
if (";${${name}};" MATCHES ";${val};")
# nothing to do for now
else()
set(${name} ${val} ${${name}} CACHE INTERNAL "CU Var")
endif()
ENDMACRO()
#
# CU_SET_PATH
#
MACRO(CU_SET_PATH name val)
CU_SET_CACHE(${name} ${val})
CU_ADD_INC_PATH(${val})
ENDMACRO()
#
# CU_ADD_INC_PATH
#
MACRO(CU_ADD_INC_PATH val)
if (";${CU_INC_PATHS};" MATCHES ";${val};")
# nothing to do for now
else()
set(CU_INC_PATHS
${CU_INC_PATHS}
${val}
)
#update cache
CU_SET_CACHE("CU_INC_PATHS" "${CU_INC_PATHS}")
include_directories(${val})
endif()
ENDMACRO()
#
# CU_LOAD_INC_PATHS
#
MACRO(CU_LOAD_INC_PATHS)
include_directories(${CU_INC_PATHS})
ENDMACRO()
#
# CU_SET_PARENT
#
MACRO(CU_SET_PARENT name val)
set(${name} ${val} PARENT_SCOPE)
ENDMACRO()
MACRO(CU_ADD_HOOK hook_name value)
CU_ADD_GLOBAL(${hook_name} "${value}")
ENDMACRO()
MACRO(CU_RUN_HOOK hook_name)
CU_GET_GLOBAL(${hook_name})
message(STATUS "Running cmake hook: ${hook_name}")
if (${hook_name})
set(HOOK_ARRAY ${${hook_name}})
FOREACH (hook_file ${HOOK_ARRAY})
message("Including ${hook_file}")
include("${hook_file}")
ENDFOREACH()
else()
message(STATUS "No hooks registered for ${hook_name}")
endif()
ENDMACRO()