Files
jellyfin-desktop/CMakeModules/utils.cmake
T

71 lines
2.6 KiB
CMake

#############################################################
function(set_bundle_dir)
set(args SOURCES DEST EXCLUDE)
include(CMakeParseArguments)
cmake_parse_arguments(BD "" "" "${args}" ${ARGN})
foreach(_BDIR ${BD_SOURCES})
file(GLOB _DIRCONTENTS ${_BDIR}/*)
foreach(_BDFILE ${_DIRCONTENTS})
get_filename_component(_BDFILE_NAME ${_BDFILE} NAME)
set(PROCESS_FILE 1)
foreach(EX_FILE ${BD_EXCLUDE})
string(REGEX MATCH ${EX_FILE} DID_MATCH ${_BDFILE})
if(NOT "${DID_MATCH}" STREQUAL "")
set(PROCESS_FILE 0)
endif(NOT "${DID_MATCH}" STREQUAL "")
endforeach(EX_FILE ${BD_EXCLUDE})
if(PROCESS_FILE STREQUAL "1")
if(IS_DIRECTORY ${_BDFILE})
set_bundle_dir(SOURCES ${_BDFILE} DEST ${BD_DEST}/${_BDFILE_NAME} EXCLUDE ${BD_EXCLUDE})
else(IS_DIRECTORY ${_BDFILE})
#message("set_bundle_dir : setting package_location ${_BDFILE} = ${BD_DEST}")
set_source_files_properties(${_BDFILE} PROPERTIES MACOSX_PACKAGE_LOCATION ${BD_DEST})
get_property(BUNDLED_FILES GLOBAL PROPERTY CONFIG_BUNDLED_FILES)
set_property(GLOBAL PROPERTY CONFIG_BUNDLED_FILES ${BUNDLED_FILES} ${_BDFILE})
string(REPLACE "/" "\\\\" GNAME ${BD_DEST})
source_group(${GNAME} FILES ${_BDFILE})
endif(IS_DIRECTORY ${_BDFILE})
endif()
endforeach(_BDFILE ${_DIRCONTENTS})
endforeach(_BDIR ${BD_SOURCES})
endfunction(set_bundle_dir)
#############################################################
macro(find_all_sources DIRECTORY VARIABLE)
aux_source_directory(${DIRECTORY} ${VARIABLE})
file(GLOB headers ${DIRECTORY}/*h)
list(APPEND ${VARIABLE} ${headers})
endmacro()
#############################################################
# function to collect all the sources from sub-directories
# into a single list
function(add_sources)
get_property(is_defined GLOBAL PROPERTY SRCS_LIST DEFINED)
if(NOT is_defined)
define_property(GLOBAL PROPERTY SRCS_LIST
BRIEF_DOCS "List of source files"
FULL_DOCS "List of source files to be compiled in one library")
endif()
# make absolute paths
set(SRCS)
foreach(s IN LISTS ARGN)
if(NOT IS_ABSOLUTE "${s}")
get_filename_component(s "${s}" ABSOLUTE)
endif()
list(APPEND SRCS "${s}")
endforeach()
string(REPLACE ${CMAKE_SOURCE_DIR}/src/ "" SUBDIR ${CMAKE_CURRENT_SOURCE_DIR})
string(TOLOWER ${SUBDIR} SUBDIR)
string(REPLACE "/" "\\\\" LIBNAME ${SUBDIR})
source_group(${LIBNAME} FILES ${SRCS})
# add it to the global list.
set_property(GLOBAL APPEND PROPERTY SRCS_LIST ${SRCS})
endfunction(add_sources)