123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- 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})
-
- 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(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()
-
- 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})
-
- set_property(GLOBAL APPEND PROPERTY SRCS_LIST ${SRCS})
- endfunction(add_sources)
- include(CheckCXXCompilerFlag)
- MACRO(ENABLE_IF_SUPPORTED _variable _flag)
-
-
-
-
-
- IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- SET(_werror_string "-Werror ")
- ELSE()
- SET(_werror_string "")
- ENDIF()
- STRING(STRIP "${_flag}" _flag_stripped)
- SET(_flag_stripped_orig "${_flag_stripped}")
-
-
-
-
-
-
-
- IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- STRING(REPLACE "-Wno-" "-W" _flag_stripped "${_flag_stripped}")
- ENDIF()
- IF(NOT "${_flag_stripped}" STREQUAL "")
- STRING(REGEX REPLACE "^-" "" _flag_name "${_flag_stripped}")
- STRING(REPLACE "," "" _flag_name "${_flag_name}")
- STRING(REPLACE "-" "_" _flag_name "${_flag_name}")
- STRING(REPLACE "+" "_" _flag_name "${_flag_name}")
- CHECK_CXX_COMPILER_FLAG(
- "${_werror_string}${_flag_stripped}"
- HAVE_FLAG_${_flag_name}
- )
- IF(HAVE_FLAG_${_flag_name})
- SET(${_variable} "${${_variable}} ${_flag_stripped_orig}")
- STRING(STRIP "${${_variable}}" ${_variable})
- ENDIF()
- ENDIF()
- ENDMACRO()
- MACRO(ENABLE_IF_LINKS _variable _flag)
- STRING(STRIP "${_flag}" _flag_stripped)
- IF(NOT "${_flag_stripped}" STREQUAL "")
- STRING(REGEX REPLACE "^-" "" _flag_name "${_flag_stripped}")
- STRING(REPLACE "," "" _flag_name "${_flag_name}")
- STRING(REPLACE "-" "_" _flag_name "${_flag_name}")
- STRING(REPLACE "+" "_" _flag_name "${_flag_name}")
- SET(_backup ${CMAKE_REQUIRED_LIBRARIES})
- LIST(APPEND CMAKE_REQUIRED_LIBRARIES "${_flag_stripped}")
- CHECK_CXX_COMPILER_FLAG(
- ""
- HAVE_FLAG_${_flag_name}
- )
- SET(CMAKE_REQUIRED_LIBRARIES ${_backup})
- IF(HAVE_FLAG_${_flag_name})
- SET(${_variable} "${${_variable}} ${_flag_stripped}")
- STRING(STRIP "${${_variable}}" ${_variable})
- ENDIF()
- ENDIF()
- ENDMACRO()
- function(std_target_properties target)
- set_target_properties(${target} PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON)
- endfunction()
|