cmake string(STRIP) examples

ornladios/ADIOS2 cmake/FindPythonModule.cmake :87

string(STRIP "${output}" output)

mosra/corrade modules/UseCorrade.cmake :644

string(STRIP "${filename}" filename)

dftbplus/dftbplus test/app/dftb+/CMakeLists.txt :20

string(STRIP "${line}" testname)

dftbplus/dftbplus test/app/modes/CMakeLists.txt :21

string(STRIP "${line}" testname)

dftbplus/dftbplus test/app/phonons/CMakeLists.txt :22

string(STRIP "${line}" testname)

doctest/doctest scripts/cmake/common.cmake :55

string(STRIP ${the_command} the_command)

FirebirdSQL/firebird CMakeLists.txt :294

string(STRIP "${s}" s)

FreeRDP/FreeRDP include/CMakeLists.txt :69

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT16[ \t ]+" IS_INT16 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT16[ \t ]+" IS_UINT16 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT32[ \t ]+" IS_INT32 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT32[ \t ]+" IS_UINT32 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT64[ \t ]+" IS_INT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT64[ \t ]+" IS_UINT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :70

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT16[ \t ]+" IS_UINT16 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT32[ \t ]+" IS_INT32 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT32[ \t ]+" IS_UINT32 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT64[ \t ]+" IS_INT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT64[ \t ]+" IS_UINT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :72

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT32[ \t ]+" IS_UINT32 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT64[ \t ]+" IS_INT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT64[ \t ]+" IS_UINT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :73

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+INT64[ \t ]+" IS_INT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT64[ \t ]+" IS_UINT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :74

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+UINT64[ \t ]+" IS_UINT64 "${TRIMMED_KEY}")
  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :75

  string(REGEX MATCH "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+(char|CHAR)[ \t ]*\\*[ \t ]+" IS_STRING "${TRIMMED_KEY}")

  string(REGEX REPLACE ".+/\\*" "" index "${TRIMMED_KEY}")
  string(REGEX REPLACE "[ \t/\\*]" "" index "${index}")

  if(index MATCHES "^[0-9]+$")
    string(REGEX REPLACE "^SETTINGS_DEPRECATED\\(ALIGN64[ \t ]+[a-zA-Z0-9_\\*]+[ \t ]+" "" VALUE ${TRIMMED_KEY})
    string(STRIP "${VALUE}" VALUE)
    string(FIND "${VALUE}" ")" SEMICOLON)
    string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)

    if(IS_BOOL)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_BOOL ${KEY_VALUE})
    elseif(IS_INT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT16 ${KEY_VALUE})
    elseif(IS_UINT16)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT16 ${KEY_VALUE})
    elseif(IS_INT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT32 ${KEY_VALUE})
    elseif(IS_UINT32)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT32 ${KEY_VALUE})
    elseif(IS_INT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_INT64 ${KEY_VALUE})
    elseif(IS_UINT64)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_UINT64 ${KEY_VALUE})
    elseif(IS_STRING)
      string(SUBSTRING "${VALUE}" 0 ${SEMICOLON} KEY_VALUE)
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_STRING ${KEY_VALUE})
    else()
      set(KEY_VALUE "FreeRDP_${KEY_VALUE} = ${index}")
      list(APPEND SETTINGS_KEYS_POINTER ${KEY_VALUE})
    endif()
  endif()
endforeach()

list(APPEND SETTINGS_KEYS_BOOL "FreeRDP_BOOL_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT16 "FreeRDP_INT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT16 "FreeRDP_UINT16_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT32 "FreeRDP_INT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT32 "FreeRDP_UINT32_UNUSED = -1")
list(APPEND SETTINGS_KEYS_INT64 "FreeRDP_INT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_UINT64 "FreeRDP_UINT64_UNUSED = -1")
list(APPEND SETTINGS_KEYS_STRING "FreeRDP_STRING_UNUSED = -1")
list(APPEND SETTINGS_KEYS_POINTER "FreeRDP_POINTER_UNUSED = -1")

string(REPLACE ";" ",\n\t" SETTINGS_KEYS_BOOL "${SETTINGS_KEYS_BOOL}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT16 "${SETTINGS_KEYS_INT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT16 "${SETTINGS_KEYS_UINT16}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT32 "${SETTINGS_KEYS_INT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT32 "${SETTINGS_KEYS_UINT32}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_INT64 "${SETTINGS_KEYS_INT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_UINT64 "${SETTINGS_KEYS_UINT64}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_STRING "${SETTINGS_KEYS_STRING}")
string(REPLACE ";" ",\n\t" SETTINGS_KEYS_POINTER "${SETTINGS_KEYS_POINTER}")

cleaning_configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/config/settings_keys.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/settings_keys.h
)

file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h")
file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h")
list(SORT PUBLIC_COMMON_HEADERS)

if(WITH_SERVER)
  set(PUBLIC_SERVER_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS INCLUDE REGEX ".*freerdp/server.*")

  set(PUBLIC_PROXY_HEADERS ${PUBLIC_SERVER_HEADERS})
  list(FILTER PUBLIC_SERVER_HEADERS EXCLUDE REGEX ".*freerdp/server/proxy.*")
  list(FILTER PUBLIC_PROXY_HEADERS INCLUDE REGEX ".*freerdp/server/proxy.*")
  if(WITH_SERVER)
    set_property(TARGET freerdp-server APPEND PROPERTY SOURCES ${PUBLIC_SERVER_HEADERS})
  endif()
  if(WITH_PROXY)
    set_property(TARGET freerdp-server-proxy APPEND PROPERTY SOURCES ${PUBLIC_PROXY_HEADERS})
  endif()
endif()

if(WITH_CLIENT_COMMON)
  set(PUBLIC_CLIENT_HEADERS ${PUBLIC_COMMON_HEADERS})
  list(FILTER PUBLIC_CLIENT_HEADERS INCLUDE REGEX ".*freerdp/client.*")
  set_property(TARGET freerdp-client APPEND PROPERTY SOURCES ${PUBLIC_CLIENT_HEADERS})
endif()

if(WITH_SERVER)
  list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/server.*")
endif()

list(FILTER PUBLIC_COMMON_HEADERS EXCLUDE REGEX ".*freerdp/client.*")
list(APPEND PUBLIC_COMMON_HEADERS ${PUBLIC_COMMON_BIN_HEADERS})
set_property(TARGET freerdp APPEND PROPERTY SOURCES ${PUBLIC_COMMON_HEADERS})

add_library(freerdp-headers INTERFACE)
target_sources(freerdp-headers INTERFACE ${PUBLIC_COMMON_HEADERS})

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/freerdp DESTINATION ${FREERDP_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h")

FreeRDP/FreeRDP include/CMakeLists.txt :82

string(STRIP "${VALUE}" VALUE)

KDAB/GammaRay cmake/ECM/modules/ECMQueryQt.cmake :93

string(STRIP "${output}" output)

google/glog CMakeLists.txt :507

string (STRIP "${glog_libraries_options_for_static_linking}" glog_libraries_options_for_static_linking)

HDFGroup/hdf4 config/cmake/HDFCompilerFlags.cmake :75

string (STRIP "${cmake_c_flags_release_edited}" cmake_c_flags_release_edited)

HDFGroup/hdf4 config/cmake/examples/CTestScript.cmake :24

string(STRIP ${osrel} osrel)

HDFGroup/hdf4 config/cmake/scripts/CTestScript.cmake :22

string(STRIP ${osname} osname)

HDFGroup/hdf4 config/cmake/scripts/CTestScript.cmake :24

string(STRIP ${osrel} osrel)

HDFGroup/hdf5 CMakeVOL.cmake :49

      string (REGEX MATCH "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*.\\{test\\}[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*.\\{[A-Za-z]*\\}[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*PROPERTIES[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*PROPERTIES[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" "" stripped_line "${line}")
      endif ()
      file (APPEND "${source_dir}/tests/CMakeLists.txt" "${stripped_line}\n")
    endforeach ()
  endif ()
endfunction ()

set (HDF5_VOL_ALLOW_EXTERNAL "NO" CACHE STRING "Allow building of external HDF5 VOL connectors with FetchContent")
set_property (CACHE HDF5_VOL_ALLOW_EXTERNAL PROPERTY STRINGS NO GIT LOCAL_DIR)
mark_as_advanced (HDF5_VOL_ALLOW_EXTERNAL)
if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
  # For compatibility, set some variables that projects would
  # typically look for after calling find_package(HDF5)
  set (HDF5_FOUND 1)
  set (HDF5_LIBRARIES "${HDF5_LIBSH_TARGET};${LINK_LIBS};${LINK_COMP_LIBS};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
  set (HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
  set (HDF5_IS_PARALLEL ${H5_HAVE_PARALLEL})
  set (HDF5_VERSION ${HDF5_PACKAGE_VERSION})

  set (HDF5_C_LIBRARIES "${HDF5_LIBRARIES}")

  if (HDF5_BUILD_HL_LIB)
    set (HDF5_C_HL_LIBRARIES "${HDF5_HL_LIBSH_TARGET}")
  endif()

  set (HDF5_MAX_EXTERNAL_VOLS 10)
  set (HDF5_EXTERNAL_VOL_TARGETS "")

  foreach (vol_idx RANGE 1 ${HDF5_MAX_EXTERNAL_VOLS})
    # Generate fixed-width index number prepended with 0s
    # so VOL sources come in order from 1 - HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_num_digits 2) # Based on HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_fixed "${vol_idx}")
    string (LENGTH "${vol_idx_fixed}" vol_idx_len)
    while (vol_idx_len LESS vol_idx_num_digits)
      string (PREPEND vol_idx_fixed "0")
      math (EXPR vol_idx_len "${vol_idx_len}+1")
    endwhile ()

    if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
      set (HDF5_VOL_URL${vol_idx_fixed} "" CACHE STRING "Git repository URL of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_URL${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_URL${vol_idx_fixed}}")
    elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
      set (HDF5_VOL_PATH${vol_idx_fixed} "" CACHE STRING "Path to the source directory of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_PATH${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_PATH${vol_idx_fixed}}")
    endif()

    if (NOT "${HDF5_VOL_SOURCE}" STREQUAL "")
      # Deal with trailing slash in path for LOCAL_DIR case
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        # Erase trailing slash
        string (REGEX REPLACE "/$" "" HDF5_VOL_SOURCE ${HDF5_VOL_SOURCE})
      endif()

      # Extract the name of the VOL connector
      string (FIND "${HDF5_VOL_SOURCE}" "/" hdf5_vol_name_pos REVERSE)
      if (hdf5_vol_name_pos EQUAL -1)
        if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
          message (SEND_ERROR "Invalid URL '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_URL${vol_idx_fixed}")
        elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
          message (SEND_ERROR "Invalid source path '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_PATH${vol_idx_fixed}")
        endif()
      endif ()

      math (EXPR hdf5_vol_name_pos "${hdf5_vol_name_pos}+1")

      string (SUBSTRING "${HDF5_VOL_SOURCE}" ${hdf5_vol_name_pos} -1 hdf5_vol_name)
      string (REPLACE ".git" "" hdf5_vol_name "${hdf5_vol_name}")
      string (STRIP "${hdf5_vol_name}" hdf5_vol_name)
      string (TOUPPER "${hdf5_vol_name}" hdf5_vol_name_upper)
      string (TOLOWER "${hdf5_vol_name}" hdf5_vol_name_lower)

      message (VERBOSE "Building VOL connector '${hdf5_vol_name}' with FetchContent from source ${HDF5_VOL_SOURCE}")

      # Set some cache variables that can be set by users when building
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        set ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH" "main" CACHE STRING "Git branch (or tag) to use when building VOL connector '${hdf5_vol_name}'")
        mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH")
      endif()

      set ("HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME"
        "${hdf5_vol_name_lower}"
        CACHE
        STRING
        "CMake package name used by find_package(...) calls for VOL connector '${hdf5_vol_name}'"
      )

      set ("HDF5_VOL_${hdf5_vol_name_upper}_NAME" "" CACHE STRING "Name of VOL connector to set for the HDF5_VOL_CONNECTOR environment variable")
      option ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL" "Whether to test VOL connector '${hdf5_vol_name}' against the parallel API tests" OFF)

      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_NAME")
      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL")

      if (HDF5_TEST_API)
        if ("${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" STREQUAL "")
          message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_NAME must be set to a valid connector name to use VOL connector '${hdf5_vol_name}' for testing")
        endif ()
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT") AND ("${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}" STREQUAL ""))
        message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_BRANCH must be set to a valid git branch name (or git tag) to build VOL connector '${hdf5_vol_name}'")
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        AND NOT (EXISTS ${HDF5_VOL_SOURCE} AND IS_DIRECTORY ${HDF5_VOL_SOURCE}))
          message (FATAL_ERROR "HDF5_VOL_PATH${vol_idx_fixed} must be an absolute path to a valid directory")
      endif ()

      # Set internal convenience variables for FetchContent dependency name
      set (hdf5_vol_depname "${HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME}")
      string (TOLOWER "${hdf5_vol_depname}" hdf5_vol_depname_lower)

      if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
        set("OVERRIDE_FIND_PACKAGE_OPT" "OVERRIDE_FIND_PACKAGE")
      endif()

      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        FetchContent_Declare (${hdf5_vol_depname}
            GIT_REPOSITORY "${HDF5_VOL_SOURCE}"
            GIT_TAG "${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}"
            "${OVERRIDE_FIND_PACKAGE_OPT}"
        )
      elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        FetchContent_Declare (${hdf5_vol_depname}
          SOURCE_DIR "${HDF5_VOL_SOURCE}"
        )
      endif()

      FetchContent_GetProperties(${hdf5_vol_depname})
      if (NOT ${hdf5_vol_depname}_POPULATED)
        FetchContent_Populate(${hdf5_vol_depname})

        # Now that content has been populated, set other internal
        # convenience variables for FetchContent dependency
        set (hdf5_vol_depname_source_dir "${${hdf5_vol_depname_lower}_SOURCE_DIR}")
        set (hdf5_vol_depname_binary_dir "${${hdf5_vol_depname_lower}_BINARY_DIR}")

        if (NOT EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
            message (SEND_ERROR "The git repository branch '${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
            message(SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          endif()
        endif ()

        # If there are any calls to find_package(HDF5) in the connector's
        # CMakeLists.txt files, remove those since any found HDF5 targets
        # will conflict with targets being generated by this build of HDF5
        if (EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")
          file (WRITE "${hdf5_vol_depname_source_dir}/CMakeLists.txt" "${vol_cmake_contents}")
        endif ()
        if (EXISTS "${hdf5_vol_depname_source_dir}/src/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/src/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")

HDFGroup/hdf5 CMakeVOL.cmake :51

        string (REGEX REPLACE "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*.\\{test\\}[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*.\\{[A-Za-z]*\\}[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*PROPERTIES[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*PROPERTIES[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" "" stripped_line "${line}")
      endif ()
      file (APPEND "${source_dir}/tests/CMakeLists.txt" "${stripped_line}\n")
    endforeach ()
  endif ()
endfunction ()

set (HDF5_VOL_ALLOW_EXTERNAL "NO" CACHE STRING "Allow building of external HDF5 VOL connectors with FetchContent")
set_property (CACHE HDF5_VOL_ALLOW_EXTERNAL PROPERTY STRINGS NO GIT LOCAL_DIR)
mark_as_advanced (HDF5_VOL_ALLOW_EXTERNAL)
if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
  # For compatibility, set some variables that projects would
  # typically look for after calling find_package(HDF5)
  set (HDF5_FOUND 1)
  set (HDF5_LIBRARIES "${HDF5_LIBSH_TARGET};${LINK_LIBS};${LINK_COMP_LIBS};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
  set (HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
  set (HDF5_IS_PARALLEL ${H5_HAVE_PARALLEL})
  set (HDF5_VERSION ${HDF5_PACKAGE_VERSION})

  set (HDF5_C_LIBRARIES "${HDF5_LIBRARIES}")

  if (HDF5_BUILD_HL_LIB)
    set (HDF5_C_HL_LIBRARIES "${HDF5_HL_LIBSH_TARGET}")
  endif()

  set (HDF5_MAX_EXTERNAL_VOLS 10)
  set (HDF5_EXTERNAL_VOL_TARGETS "")

  foreach (vol_idx RANGE 1 ${HDF5_MAX_EXTERNAL_VOLS})
    # Generate fixed-width index number prepended with 0s
    # so VOL sources come in order from 1 - HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_num_digits 2) # Based on HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_fixed "${vol_idx}")
    string (LENGTH "${vol_idx_fixed}" vol_idx_len)
    while (vol_idx_len LESS vol_idx_num_digits)
      string (PREPEND vol_idx_fixed "0")
      math (EXPR vol_idx_len "${vol_idx_len}+1")
    endwhile ()

    if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
      set (HDF5_VOL_URL${vol_idx_fixed} "" CACHE STRING "Git repository URL of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_URL${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_URL${vol_idx_fixed}}")
    elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
      set (HDF5_VOL_PATH${vol_idx_fixed} "" CACHE STRING "Path to the source directory of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_PATH${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_PATH${vol_idx_fixed}}")
    endif()

    if (NOT "${HDF5_VOL_SOURCE}" STREQUAL "")
      # Deal with trailing slash in path for LOCAL_DIR case
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        # Erase trailing slash
        string (REGEX REPLACE "/$" "" HDF5_VOL_SOURCE ${HDF5_VOL_SOURCE})
      endif()

      # Extract the name of the VOL connector
      string (FIND "${HDF5_VOL_SOURCE}" "/" hdf5_vol_name_pos REVERSE)
      if (hdf5_vol_name_pos EQUAL -1)
        if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
          message (SEND_ERROR "Invalid URL '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_URL${vol_idx_fixed}")
        elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
          message (SEND_ERROR "Invalid source path '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_PATH${vol_idx_fixed}")
        endif()
      endif ()

      math (EXPR hdf5_vol_name_pos "${hdf5_vol_name_pos}+1")

      string (SUBSTRING "${HDF5_VOL_SOURCE}" ${hdf5_vol_name_pos} -1 hdf5_vol_name)
      string (REPLACE ".git" "" hdf5_vol_name "${hdf5_vol_name}")
      string (STRIP "${hdf5_vol_name}" hdf5_vol_name)
      string (TOUPPER "${hdf5_vol_name}" hdf5_vol_name_upper)
      string (TOLOWER "${hdf5_vol_name}" hdf5_vol_name_lower)

      message (VERBOSE "Building VOL connector '${hdf5_vol_name}' with FetchContent from source ${HDF5_VOL_SOURCE}")

      # Set some cache variables that can be set by users when building
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        set ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH" "main" CACHE STRING "Git branch (or tag) to use when building VOL connector '${hdf5_vol_name}'")
        mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH")
      endif()

      set ("HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME"
        "${hdf5_vol_name_lower}"
        CACHE
        STRING
        "CMake package name used by find_package(...) calls for VOL connector '${hdf5_vol_name}'"
      )

      set ("HDF5_VOL_${hdf5_vol_name_upper}_NAME" "" CACHE STRING "Name of VOL connector to set for the HDF5_VOL_CONNECTOR environment variable")
      option ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL" "Whether to test VOL connector '${hdf5_vol_name}' against the parallel API tests" OFF)

      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_NAME")
      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL")

      if (HDF5_TEST_API)
        if ("${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" STREQUAL "")
          message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_NAME must be set to a valid connector name to use VOL connector '${hdf5_vol_name}' for testing")
        endif ()
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT") AND ("${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}" STREQUAL ""))
        message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_BRANCH must be set to a valid git branch name (or git tag) to build VOL connector '${hdf5_vol_name}'")
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        AND NOT (EXISTS ${HDF5_VOL_SOURCE} AND IS_DIRECTORY ${HDF5_VOL_SOURCE}))
          message (FATAL_ERROR "HDF5_VOL_PATH${vol_idx_fixed} must be an absolute path to a valid directory")
      endif ()

      # Set internal convenience variables for FetchContent dependency name
      set (hdf5_vol_depname "${HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME}")
      string (TOLOWER "${hdf5_vol_depname}" hdf5_vol_depname_lower)

      if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
        set("OVERRIDE_FIND_PACKAGE_OPT" "OVERRIDE_FIND_PACKAGE")
      endif()

      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        FetchContent_Declare (${hdf5_vol_depname}
            GIT_REPOSITORY "${HDF5_VOL_SOURCE}"
            GIT_TAG "${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}"
            "${OVERRIDE_FIND_PACKAGE_OPT}"
        )
      elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        FetchContent_Declare (${hdf5_vol_depname}
          SOURCE_DIR "${HDF5_VOL_SOURCE}"
        )
      endif()

      FetchContent_GetProperties(${hdf5_vol_depname})
      if (NOT ${hdf5_vol_depname}_POPULATED)
        FetchContent_Populate(${hdf5_vol_depname})

        # Now that content has been populated, set other internal
        # convenience variables for FetchContent dependency
        set (hdf5_vol_depname_source_dir "${${hdf5_vol_depname_lower}_SOURCE_DIR}")
        set (hdf5_vol_depname_binary_dir "${${hdf5_vol_depname_lower}_BINARY_DIR}")

        if (NOT EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
            message (SEND_ERROR "The git repository branch '${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
            message(SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          endif()
        endif ()

        # If there are any calls to find_package(HDF5) in the connector's
        # CMakeLists.txt files, remove those since any found HDF5 targets
        # will conflict with targets being generated by this build of HDF5
        if (EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")

HDFGroup/hdf5 config/HDF5UseFortran.cmake :325

string(STRIP ${pack_real_sizeof} pack_real_sizeof)

HDFGroup/hdf5 config/cmake/scripts/CTestScript.cmake :35

string(STRIP ${osrel} osrel)

HDFGroup/hdf5 config/examples/CTestScript.cmake :33

string(STRIP ${osname} osname)

HDFGroup/hdf5 tools/test/h5dump/CMakeVFDTests.cmake :57

string(STRIP ${INODE_VALUE} INODE_STR)

igraph/igraph etc/cmake/ieee754_endianness.cmake :30

string(STRIP "${IEEE754_DOUBLE_ENDIANNESS_TEST_RESULT}" IEEE754_DOUBLE_ENDIANNESS_TEST_RESULT)

igraph/igraph etc/cmake/version.cmake :27

string(STRIP "${PACKAGE_VERSION}" PACKAGE_VERSION)

AcademySoftwareFoundation/Imath cmake/FindPythonPackage.cmake :66

string(STRIP "${_PKG_DIR}" _PKG_DIR)

pantor/inja cmake/CoverallsGenerateGcov.cmake :393

string(STRIP ${LINE} LINE)

dscharrer/innoextract cmake/VersionString.cmake :168

string(STRIP "${contents}" contents)

ispc/ispc examples/cpu/cmake/AddISPCExample.cmake :16

string(STRIP ${ARCH} ARCH)

InsightSoftwareConsortium/ITK CMake/ExternalData.cmake :1178

string(STRIP "${f_hash}" f_hash)

InsightSoftwareConsortium/ITK Modules/ThirdParty/HDF5/src/itkhdf5/CMakeVOL.cmake :49

      string (REGEX MATCH "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*.\\{test\\}[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*.\\{[A-Za-z]*\\}[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*PROPERTIES[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*PROPERTIES[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" "" stripped_line "${line}")
      endif ()
      file (APPEND "${source_dir}/tests/CMakeLists.txt" "${stripped_line}\n")
    endforeach ()
  endif ()
endfunction ()

set (HDF5_VOL_ALLOW_EXTERNAL "NO" CACHE STRING "Allow building of external HDF5 VOL connectors with FetchContent")
set_property (CACHE HDF5_VOL_ALLOW_EXTERNAL PROPERTY STRINGS NO GIT LOCAL_DIR)
mark_as_advanced (HDF5_VOL_ALLOW_EXTERNAL)
if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
  # For compatibility, set some variables that projects would
  # typically look for after calling find_package(HDF5)
  set (HDF5_FOUND 1)
  set (HDF5_LIBRARIES "${HDF5_LIBSH_TARGET};${LINK_LIBS};${LINK_COMP_LIBS};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
  set (HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
  set (HDF5_IS_PARALLEL ${H5_HAVE_PARALLEL})
  set (HDF5_VERSION ${HDF5_PACKAGE_VERSION})

  set (HDF5_C_LIBRARIES "${HDF5_LIBRARIES}")

  if (HDF5_BUILD_HL_LIB)
    set (HDF5_C_HL_LIBRARIES "${HDF5_HL_LIBSH_TARGET}")
  endif()

  set (HDF5_MAX_EXTERNAL_VOLS 10)
  set (HDF5_EXTERNAL_VOL_TARGETS "")

  foreach (vol_idx RANGE 1 ${HDF5_MAX_EXTERNAL_VOLS})
    # Generate fixed-width index number prepended with 0s
    # so VOL sources come in order from 1 - HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_num_digits 2) # Based on HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_fixed "${vol_idx}")
    string (LENGTH "${vol_idx_fixed}" vol_idx_len)
    while (vol_idx_len LESS vol_idx_num_digits)
      string (PREPEND vol_idx_fixed "0")
      math (EXPR vol_idx_len "${vol_idx_len}+1")
    endwhile ()

    if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
      set (HDF5_VOL_URL${vol_idx_fixed} "" CACHE STRING "Git repository URL of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_URL${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_URL${vol_idx_fixed}}")
    elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
      set (HDF5_VOL_PATH${vol_idx_fixed} "" CACHE STRING "Path to the source directory of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_PATH${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_PATH${vol_idx_fixed}}")
    endif()

    if (NOT "${HDF5_VOL_SOURCE}" STREQUAL "")
      # Deal with trailing slash in path for LOCAL_DIR case
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        # Erase trailing slash
        string (REGEX REPLACE "/$" "" HDF5_VOL_SOURCE ${HDF5_VOL_SOURCE})
      endif()

      # Extract the name of the VOL connector
      string (FIND "${HDF5_VOL_SOURCE}" "/" hdf5_vol_name_pos REVERSE)
      if (hdf5_vol_name_pos EQUAL -1)
        if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
          message (SEND_ERROR "Invalid URL '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_URL${vol_idx_fixed}")
        elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
          message (SEND_ERROR "Invalid source path '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_PATH${vol_idx_fixed}")
        endif()
      endif ()

      math (EXPR hdf5_vol_name_pos "${hdf5_vol_name_pos}+1")

      string (SUBSTRING "${HDF5_VOL_SOURCE}" ${hdf5_vol_name_pos} -1 hdf5_vol_name)
      string (REPLACE ".git" "" hdf5_vol_name "${hdf5_vol_name}")
      string (STRIP "${hdf5_vol_name}" hdf5_vol_name)
      string (TOUPPER "${hdf5_vol_name}" hdf5_vol_name_upper)
      string (TOLOWER "${hdf5_vol_name}" hdf5_vol_name_lower)

      message (VERBOSE "Building VOL connector '${hdf5_vol_name}' with FetchContent from source ${HDF5_VOL_SOURCE}")

      # Set some cache variables that can be set by users when building
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        set ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH" "main" CACHE STRING "Git branch (or tag) to use when building VOL connector '${hdf5_vol_name}'")
        mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH")
      endif()

      set ("HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME"
        "${hdf5_vol_name_lower}"
        CACHE
        STRING
        "CMake package name used by find_package(...) calls for VOL connector '${hdf5_vol_name}'"
      )

      set ("HDF5_VOL_${hdf5_vol_name_upper}_NAME" "" CACHE STRING "Name of VOL connector to set for the HDF5_VOL_CONNECTOR environment variable")
      option ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL" "Whether to test VOL connector '${hdf5_vol_name}' against the parallel API tests" OFF)

      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_NAME")
      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL")

      if (HDF5_TEST_API)
        if ("${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" STREQUAL "")
          message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_NAME must be set to a valid connector name to use VOL connector '${hdf5_vol_name}' for testing")
        endif ()
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT") AND ("${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}" STREQUAL ""))
        message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_BRANCH must be set to a valid git branch name (or git tag) to build VOL connector '${hdf5_vol_name}'")
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        AND NOT (EXISTS ${HDF5_VOL_SOURCE} AND IS_DIRECTORY ${HDF5_VOL_SOURCE}))
          message (FATAL_ERROR "HDF5_VOL_PATH${vol_idx_fixed} must be an absolute path to a valid directory")
      endif ()

      # Set internal convenience variables for FetchContent dependency name
      set (hdf5_vol_depname "${HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME}")
      string (TOLOWER "${hdf5_vol_depname}" hdf5_vol_depname_lower)

      if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
        set("OVERRIDE_FIND_PACKAGE_OPT" "OVERRIDE_FIND_PACKAGE")
      endif()

      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        FetchContent_Declare (${hdf5_vol_depname}
            GIT_REPOSITORY "${HDF5_VOL_SOURCE}"
            GIT_TAG "${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}"
            "${OVERRIDE_FIND_PACKAGE_OPT}"
        )
      elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        FetchContent_Declare (${hdf5_vol_depname}
          SOURCE_DIR "${HDF5_VOL_SOURCE}"
        )
      endif()

      FetchContent_GetProperties(${hdf5_vol_depname})
      if (NOT ${hdf5_vol_depname}_POPULATED)
        FetchContent_Populate(${hdf5_vol_depname})

        # Now that content has been populated, set other internal
        # convenience variables for FetchContent dependency
        set (hdf5_vol_depname_source_dir "${${hdf5_vol_depname_lower}_SOURCE_DIR}")
        set (hdf5_vol_depname_binary_dir "${${hdf5_vol_depname_lower}_BINARY_DIR}")

        if (NOT EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
            message (SEND_ERROR "The git repository branch '${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
            message(SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          endif()
        endif ()

        # If there are any calls to find_package(HDF5) in the connector's
        # CMakeLists.txt files, remove those since any found HDF5 targets
        # will conflict with targets being generated by this build of HDF5
        if (EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")
          file (WRITE "${hdf5_vol_depname_source_dir}/CMakeLists.txt" "${vol_cmake_contents}")
        endif ()
        if (EXISTS "${hdf5_vol_depname_source_dir}/src/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/src/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")

InsightSoftwareConsortium/ITK Modules/ThirdParty/HDF5/src/itkhdf5/CMakeVOL.cmake :51

        string (REGEX REPLACE "^[ \t]*set_tests_properties\\([ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*.\\{test\\}[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*.\\{[A-Za-z]*\\}[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*PROPERTIES[ \t]*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*PROPERTIES[ \t]*[\r\n]?" "" stripped_line "${line}")
      endif ()
      string (REGEX MATCH "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" match_string "${line}")
      if (NOT "${match_string}" STREQUAL "")
        string (REGEX REPLACE "^[ \t]*ENVIRONMENT[ \t]*.*[\r\n]?" "" stripped_line "${line}")
      endif ()
      file (APPEND "${source_dir}/tests/CMakeLists.txt" "${stripped_line}\n")
    endforeach ()
  endif ()
endfunction ()

set (HDF5_VOL_ALLOW_EXTERNAL "NO" CACHE STRING "Allow building of external HDF5 VOL connectors with FetchContent")
set_property (CACHE HDF5_VOL_ALLOW_EXTERNAL PROPERTY STRINGS NO GIT LOCAL_DIR)
mark_as_advanced (HDF5_VOL_ALLOW_EXTERNAL)
if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
  # For compatibility, set some variables that projects would
  # typically look for after calling find_package(HDF5)
  set (HDF5_FOUND 1)
  set (HDF5_LIBRARIES "${HDF5_LIBSH_TARGET};${LINK_LIBS};${LINK_COMP_LIBS};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
  set (HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
  set (HDF5_IS_PARALLEL ${H5_HAVE_PARALLEL})
  set (HDF5_VERSION ${HDF5_PACKAGE_VERSION})

  set (HDF5_C_LIBRARIES "${HDF5_LIBRARIES}")

  if (HDF5_BUILD_HL_LIB)
    set (HDF5_C_HL_LIBRARIES "${HDF5_HL_LIBSH_TARGET}")
  endif()

  set (HDF5_MAX_EXTERNAL_VOLS 10)
  set (HDF5_EXTERNAL_VOL_TARGETS "")

  foreach (vol_idx RANGE 1 ${HDF5_MAX_EXTERNAL_VOLS})
    # Generate fixed-width index number prepended with 0s
    # so VOL sources come in order from 1 - HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_num_digits 2) # Based on HDF5_MAX_EXTERNAL_VOLS
    set (vol_idx_fixed "${vol_idx}")
    string (LENGTH "${vol_idx_fixed}" vol_idx_len)
    while (vol_idx_len LESS vol_idx_num_digits)
      string (PREPEND vol_idx_fixed "0")
      math (EXPR vol_idx_len "${vol_idx_len}+1")
    endwhile ()

    if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
      set (HDF5_VOL_URL${vol_idx_fixed} "" CACHE STRING "Git repository URL of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_URL${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_URL${vol_idx_fixed}}")
    elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
      set (HDF5_VOL_PATH${vol_idx_fixed} "" CACHE STRING "Path to the source directory of an external HDF5 VOL connector to build")
      mark_as_advanced (HDF5_VOL_PATH${vol_idx_fixed})
      set (HDF5_VOL_SOURCE "${HDF5_VOL_PATH${vol_idx_fixed}}")
    endif()

    if (NOT "${HDF5_VOL_SOURCE}" STREQUAL "")
      # Deal with trailing slash in path for LOCAL_DIR case
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        # Erase trailing slash
        string (REGEX REPLACE "/$" "" HDF5_VOL_SOURCE ${HDF5_VOL_SOURCE})
      endif()

      # Extract the name of the VOL connector
      string (FIND "${HDF5_VOL_SOURCE}" "/" hdf5_vol_name_pos REVERSE)
      if (hdf5_vol_name_pos EQUAL -1)
        if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
          message (SEND_ERROR "Invalid URL '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_URL${vol_idx_fixed}")
        elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
          message (SEND_ERROR "Invalid source path '${HDF5_VOL_SOURCE}' specified for HDF5_VOL_PATH${vol_idx_fixed}")
        endif()
      endif ()

      math (EXPR hdf5_vol_name_pos "${hdf5_vol_name_pos}+1")

      string (SUBSTRING "${HDF5_VOL_SOURCE}" ${hdf5_vol_name_pos} -1 hdf5_vol_name)
      string (REPLACE ".git" "" hdf5_vol_name "${hdf5_vol_name}")
      string (STRIP "${hdf5_vol_name}" hdf5_vol_name)
      string (TOUPPER "${hdf5_vol_name}" hdf5_vol_name_upper)
      string (TOLOWER "${hdf5_vol_name}" hdf5_vol_name_lower)

      message (VERBOSE "Building VOL connector '${hdf5_vol_name}' with FetchContent from source ${HDF5_VOL_SOURCE}")

      # Set some cache variables that can be set by users when building
      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        set ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH" "main" CACHE STRING "Git branch (or tag) to use when building VOL connector '${hdf5_vol_name}'")
        mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_BRANCH")
      endif()

      set ("HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME"
        "${hdf5_vol_name_lower}"
        CACHE
        STRING
        "CMake package name used by find_package(...) calls for VOL connector '${hdf5_vol_name}'"
      )

      set ("HDF5_VOL_${hdf5_vol_name_upper}_NAME" "" CACHE STRING "Name of VOL connector to set for the HDF5_VOL_CONNECTOR environment variable")
      option ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL" "Whether to test VOL connector '${hdf5_vol_name}' against the parallel API tests" OFF)

      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_NAME")
      mark_as_advanced ("HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL")

      if (HDF5_TEST_API)
        if ("${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" STREQUAL "")
          message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_NAME must be set to a valid connector name to use VOL connector '${hdf5_vol_name}' for testing")
        endif ()
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT") AND ("${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}" STREQUAL ""))
        message (SEND_ERROR "HDF5_VOL_${hdf5_vol_name_upper}_BRANCH must be set to a valid git branch name (or git tag) to build VOL connector '${hdf5_vol_name}'")
      endif ()

      if ((HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        AND NOT (EXISTS ${HDF5_VOL_SOURCE} AND IS_DIRECTORY ${HDF5_VOL_SOURCE}))
          message (FATAL_ERROR "HDF5_VOL_PATH${vol_idx_fixed} must be an absolute path to a valid directory")
      endif ()

      # Set internal convenience variables for FetchContent dependency name
      set (hdf5_vol_depname "${HDF5_VOL_${hdf5_vol_name_upper}_CMAKE_PACKAGE_NAME}")
      string (TOLOWER "${hdf5_vol_depname}" hdf5_vol_depname_lower)

      if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
        set("OVERRIDE_FIND_PACKAGE_OPT" "OVERRIDE_FIND_PACKAGE")
      endif()

      if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
        FetchContent_Declare (${hdf5_vol_depname}
            GIT_REPOSITORY "${HDF5_VOL_SOURCE}"
            GIT_TAG "${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}"
            "${OVERRIDE_FIND_PACKAGE_OPT}"
        )
      elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
        FetchContent_Declare (${hdf5_vol_depname}
          SOURCE_DIR "${HDF5_VOL_SOURCE}"
        )
      endif()

      FetchContent_GetProperties(${hdf5_vol_depname})
      if (NOT ${hdf5_vol_depname}_POPULATED)
        FetchContent_Populate(${hdf5_vol_depname})

        # Now that content has been populated, set other internal
        # convenience variables for FetchContent dependency
        set (hdf5_vol_depname_source_dir "${${hdf5_vol_depname_lower}_SOURCE_DIR}")
        set (hdf5_vol_depname_binary_dir "${${hdf5_vol_depname_lower}_BINARY_DIR}")

        if (NOT EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT")
            message (SEND_ERROR "The git repository branch '${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR")
            message(SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file")
          endif()
        endif ()

        # If there are any calls to find_package(HDF5) in the connector's
        # CMakeLists.txt files, remove those since any found HDF5 targets
        # will conflict with targets being generated by this build of HDF5
        if (EXISTS "${hdf5_vol_depname_source_dir}/CMakeLists.txt")
          file (READ "${hdf5_vol_depname_source_dir}/CMakeLists.txt" vol_cmake_contents)
          string (REGEX REPLACE "[ \t]*find_package[ \t]*\\([ \t]*HDF5[^\r\n\\)]*\\)[ \t]*[\r\n]+" "" vol_cmake_contents "${vol_cmake_contents}")

InsightSoftwareConsortium/ITK Modules/ThirdParty/HDF5/src/itkhdf5/CMakeVOL.cmake :133

string (STRIP "${hdf5_vol_name}" hdf5_vol_name)

InsightSoftwareConsortium/ITK Modules/ThirdParty/HDF5/src/itkhdf5/config/cmake/HDF5UseFortran.cmake :284

string (STRIP ${pack_int_sizeof} pack_int_sizeof)

InsightSoftwareConsortium/ITK Modules/ThirdParty/HDF5/src/itkhdf5/config/cmake/examples/CTestScript.cmake :35

string(STRIP ${osrel} osrel)

keepassxreboot/keepassxc CMakeLists.txt :152

string(STRIP "${GIT_TAG}" GIT_TAG)

KhronosGroup/KTX cmake/cputypetest.cmake :139

string(STRIP "${CMAKE_OSX_ARCHITECTURES}" architectures)

lexbor/lexbor config.cmake :871

STRING(STRIP ${codename} codename)

jtv/libpqxx CMakeLists.txt :4

string(STRIP ${VER_FILE_CONTENT} VER_FILE_CONTENT)

sbmlteam/libsbml CMakeLists.txt :78

string(STRIP "${VersionString}" VersionString)

sbmlteam/libsbml CMakeModules/FindCHECK.cmake :94

string(STRIP "${CHECK_TMP_LIBS}" CHECK_TMP_LIBS)

sbmlteam/libsbml dev/utilities/build-python/source/create-conda-archives.cmake :27

string(STRIP "${VersionString}" VersionString)

sbmlteam/libsbml src/bindings/matlab/FindMatlab.cmake :330

STRING(STRIP "${MATLAB_MEX_EXT}" MATLAB_MEX_EXT)

mfem/mfem config/cmake/modules/FindMUMPS.cmake :43

string(STRIP "${MUMPS_VERSION_OUTPUT}" MUMPS_VERSION)

mltframework/mlt cmake/FindNode.cmake :75

string (STRIP ${V8_DEFINE_STRING} V8_DEFINE_STRING)

rui314/mold lib/update-git-hash.cmake :5

string(STRIP "${HASH}" HASH)

rui314/mold lib/update-git-hash.cmake :11

string(STRIP "${HASH}" HASH)

rui314/mold third-party/tbb/python/CMakeLists.txt :33

string(STRIP "${TBB4PY_INCLUDE_STRING}" TBB4PY_INCLUDE_STRING)

YosysHQ/nextpnr 3rdparty/pybind11/tools/pybind11Common.cmake :238

string(STRIP "${PKG_VERSION}" PKG_VERSION)

tpaviot/oce adm/cmake/cotire.cmake :879

string (STRIP "${_compilerArg1}" _compilerArg1)

uxlfoundation/oneTBB python/CMakeLists.txt :33

string(STRIP "${TBB4PY_INCLUDE_STRING}" TBB4PY_INCLUDE_STRING)

onnx/onnx CMakeLists.txt :98

string(STRIP "${ONNX_VERSION}" ONNX_VERSION)

AcademySoftwareFoundation/OpenColorIO share/cmake/modules/install/Installexpat.cmake :67

string(STRIP "${EXPAT_C_FLAGS}" EXPAT_C_FLAGS)

AcademySoftwareFoundation/OpenColorIO share/cmake/modules/install/Installexpat.cmake :68

string(STRIP "${EXPAT_CXX_FLAGS}" EXPAT_CXX_FLAGS)

openscenegraph/OpenSceneGraph PlatformSpecifics/Android/android.toolchain.cmake :831

string( STRIP "${ANDROID_NATIVE_API_LEVEL}" ANDROID_NATIVE_API_LEVEL )

AcademySoftwareFoundation/openvdb cmake/FindBlosc.cmake :170

string(STRIP "${_blosc_version_release_string}" Blosc_VERSION_RELEASE)

AcademySoftwareFoundation/openvdb cmake/FindTBB.cmake :209

string(STRIP "${_tbb_version_major_string}" Tbb_VERSION_MAJOR)

AcademySoftwareFoundation/openvdb cmake/FindTBB.cmake :213

string(STRIP "${_tbb_version_minor_string}" Tbb_VERSION_MINOR)

AcademySoftwareFoundation/openvdb cmake/FindTBB.cmake :217

string(STRIP "${_tbb_binary_version_string}" Tbb_BINARY_VERSION)

ICLDisco/parsec cmake_modules/FindOTF2.cmake :36

string(STRIP ${flag} flag)

libressl/portable CMakeLists.txt :47

string(STRIP ${TLS_VERSION} TLS_VERSION)

pupnp/pupnp cmake/autoheader.cmake :34

string (STRIP ${CMAKE_MATCH_3} ${CMAKE_MATCH_3})

sunderme/qdia cmake/FindGitInfo.cmake :204

string(STRIP "${GIT_WC_LATEST_TAG_LONG}" GIT_WC_LATEST_TAG_LONG)

qgis/QGIS cmake/QCAMacros.cmake :184

string(STRIP "${_plugin_dir}" _plugin_dir)

qt/qt5 cmake/QtIRParsingHelpers.cmake :39

string(STRIP "${git_output}" git_output)

qt/qt5 coin/provisioning/common/shared/vcpkg_parse_packages.cmake :36

string(STRIP "${package}" package)

qt/qt5 coin/provisioning/common/shared/vcpkg_parse_packages.cmake :37

string(STRIP "${version}" version)

qtwebkit/qtwebkit Source/cmake/ECMQueryQmake.cmake :18

string(STRIP "${output}" output)

qtwebkit/qtwebkit Source/ThirdParty/libwebrtc/Source/third_party/gflags/src/CMakeLists.txt :472

string (STRIP "${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_ARCHITECTURE)

qtwebkit/qtwebkit Source/ThirdParty/libwebrtc/Source/third_party/protobuf/cmake/install.cmake :59

string(STRIP "${_item}" _item)

ossia/score cmake/ScoreExternalAddon.sdk.cmake :7

string(STRIP "${CLANG_RESOURCE_DIR}" CLANG_RESOURCE_DIR)

ossia/score cmake/ScoreFunctions.cmake :34

string(STRIP ${commandName} strippedCommandName)

Haivision/srt scripts/visionOS.cmake :120

string(STRIP "${CMAKE_XCODE_DEVELOPER_DIR}" CMAKE_XCODE_DEVELOPER_DIR) # FIXED: remove new line character, otherwise it complain no visionOS SDK's found in default search path

DrTimothyAldenDavis/SuiteSparse LAGraph/cmake_modules/CodeCoverage.cmake :144

string(STRIP "${GIT_HEAD_SHORT_HASH}" GIT_HEAD_SHORT_HASH)

DrTimothyAldenDavis/SuiteSparse LAGraph/cmake_modules/CodeCoverage.cmake :150

string(STRIP "${CURRENT_DATE}" CURRENT_DATE)

LLNL/sundials cmake/macros/SundialsAddBenchmark.cmake :100

string(STRIP "${RUN_COMMAND}" RUN_COMMAND)

LLNL/sundials cmake/macros/SundialsAddTest.cmake :169

string(STRIP "${_post_exe}" _post_exe)

LLNL/sundials cmake/macros/SundialsCMakeMacros.cmake :70

string(STRIP "${_tmp}" _tmp)

xiaoyeli/superlu_dist CMakeLists.txt :208

string(STRIP "${INSTALLED_GPU_CCS_1}" INSTALLED_GPU_CCS_2)

trilinos/Trilinos cmake/std/atdm/ATDMDevEnvSettings.cmake :259

string(STRIP "${CMAKE_EXE_LINKER_FLAGS}" CMAKE_EXE_LINKER_FLAGS)

trilinos/Trilinos packages/muelu/src/CMakeLists.txt :161

string(STRIP CONDITION_NAME ${CONDITION_NAME})

trilinos/Trilinos packages/muelu/src/CMakeLists.txt :288

string(STRIP CONDITION_NAME ${CONDITION_NAME})

trilinos/Trilinos packages/PyTrilinos/cmake/UseSWIG.cmake :175

STRING(STRIP ${it} dependency)

trilinos/Trilinos packages/stokhos/src/CMakeLists.txt :144

string(STRIP CONDITION_NAME ${CONDITION_NAME})

trilinos/Trilinos packages/xpetra/src/Utils/ExplicitInstantiation/xpetra-process-eti-template.cmake :20

string(STRIP CONDITION_NAME ${CONDITION_NAME})

EttusResearch/uhd host/examples/rfnoc-gain/CMakeLists.txt :156

string(STRIP "${_src_file}" _src_file})

uncrustify/uncrustify cmake/GenerateVersionHeader.cmake :24

# string(STRIP "${make_version_output}" make_version_output)

microsoft/vcpkg ports/qt5-base/cmake/configure_qt.cmake :133

string(STRIP "${flags}" striped_flags)

microsoft/vcpkg ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt :198

string(STRIP ${flags}_FLAGS "${${flags}_FLAGS}")

microsoft/vcpkg scripts/cmake/vcpkg_configure_make.cmake :199

string(STRIP "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${var_suffix}}" LINK_ENV)

microsoft/vcpkg scripts/test_ports/vcpkg-from-git-test/portfile.cmake :208

string(STRIP "${new_head_ref}" new_head_ref)

Viskores/viskores CMake/FindSphinx.cmake :117

string(STRIP "${CMAKE_MATCH_1}" _Sphinx_shebang)

Viskores/viskores CMake/FindSphinx.cmake :346

string(STRIP "${CMAKE_MATCH_2}" _dir)

Viskores/viskores CMake/patches/3.15/FindMPI.cmake :1647

string(STRIP "${MPI_RUN_OUTPUT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}"
  MPI_${LANG}_LIBRARY_VERSION_STRING)

Viskores/viskores CMake/testing/ViskoresPerformanceTestReport.cmake :33

string(STRIP "${GIT_BASE_COMMIT}" GIT_BASE_COMMIT)

bytecodealliance/wasmtime crates/c-api/CMakeLists.txt :14

string(STRIP ${CMAKE_MATCH_1} RUSTC_HOST_TARGET)

wxWidgets/wxWidgets build/cmake/config.cmake :150

string(STRIP "${BUILT_WX_LIBS}" BUILT_WX_LIBS)