mirror of
https://github.com/reactos/CMake.git
synced 2025-01-19 01:42:18 +00:00
Merge topic 'include-dir-special'
9be48c4d0b Tests: Add coverage for special characters in include directories dc0dc974a9 Xcode: Fix quoting of paths with square brackets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4591
This commit is contained in:
commit
eb28858586
@ -3550,7 +3550,7 @@ std::string cmGlobalXCodeGenerator::RelativeToBinary(const std::string& p)
|
||||
|
||||
std::string cmGlobalXCodeGenerator::XCodeEscapePath(const std::string& p)
|
||||
{
|
||||
if (p.find(' ') != std::string::npos) {
|
||||
if (p.find_first_of(" []") != std::string::npos) {
|
||||
std::string t = cmStrCat('"', p, '"');
|
||||
return t;
|
||||
}
|
||||
|
@ -65,6 +65,24 @@ else()
|
||||
PROPERTIES COMPILE_FLAGS "-ITarProp")
|
||||
endif()
|
||||
|
||||
# Test escaping of special characters in include directory paths.
|
||||
# FIXME: Implement full support in Makefile generators
|
||||
if(NOT CMAKE_GENERATOR MATCHES "Make")
|
||||
set(special_chars "~@#$%^&=[]{}()!'")
|
||||
if(NOT CMAKE_GENERATOR STREQUAL "Visual Studio 9 2008")
|
||||
string(APPEND special_chars ",")
|
||||
endif()
|
||||
if(NOT WIN32 AND NOT CYGWIN)
|
||||
string(APPEND special_chars "*?<>")
|
||||
endif()
|
||||
set(special_dir "${CMAKE_CURRENT_BINARY_DIR}/special-${special_chars}-include")
|
||||
file(WRITE "${special_dir}/SpecialDir.h" "#define SPECIAL_DIR_H\n")
|
||||
set(special_space_dir "${CMAKE_CURRENT_BINARY_DIR}/special-space ${special_chars}-include")
|
||||
file(WRITE "${special_space_dir}/SpecialSpaceDir.h" "#define SPECIAL_SPACE_DIR_H\n")
|
||||
target_include_directories(IncludeDirectories PRIVATE "${special_dir}" "${special_space_dir}")
|
||||
target_compile_definitions(IncludeDirectories PRIVATE INCLUDE_SPECIAL_DIR)
|
||||
endif()
|
||||
|
||||
add_library(ordertest ordertest.cpp)
|
||||
target_include_directories(ordertest SYSTEM PUBLIC SystemIncludeDirectories/systemlib)
|
||||
target_include_directories(ordertest PUBLIC SystemIncludeDirectories/userlib)
|
||||
|
@ -3,6 +3,17 @@
|
||||
#include "SrcProp.h"
|
||||
#include "TarProp.h"
|
||||
|
||||
#ifdef INCLUDE_SPECIAL_DIR
|
||||
# include "SpecialDir.h"
|
||||
# ifndef SPECIAL_DIR_H
|
||||
# error "SPECIAL_DIR_H not defined"
|
||||
# endif
|
||||
# include "SpecialSpaceDir.h"
|
||||
# ifndef SPECIAL_SPACE_DIR_H
|
||||
# error "SPECIAL_SPACE_DIR_H not defined"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user