mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 17:56:26 +00:00
cmSourceFile: Move LANGUAGE to GetPropertyForUser
- Remove the special case from cmGetSourceFilePropertyCommand Tests: check LANGUAGE for source file - use target_sources to add file - use get_property to read property value
This commit is contained in:
parent
8cb3cffa42
commit
a40744c81a
@ -24,10 +24,6 @@ bool cmGetSourceFilePropertyCommand::InitialPass(
|
|||||||
sf = this->Makefile->CreateSource(file);
|
sf = this->Makefile->CreateSource(file);
|
||||||
}
|
}
|
||||||
if (sf) {
|
if (sf) {
|
||||||
if (args[2] == "LANGUAGE") {
|
|
||||||
this->Makefile->AddDefinition(var, sf->GetOrDetermineLanguage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
const char* prop = nullptr;
|
const char* prop = nullptr;
|
||||||
if (!args[2].empty()) {
|
if (!args[2].empty()) {
|
||||||
prop = sf->GetPropertyForUser(args[2]);
|
prop = sf->GetPropertyForUser(args[2]);
|
||||||
|
@ -272,6 +272,13 @@ const char* cmSourceFile::GetPropertyForUser(const std::string& prop)
|
|||||||
this->GetFullPath();
|
this->GetFullPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Similarly, LANGUAGE can be determined by the file extension
|
||||||
|
// if it is requested by the user.
|
||||||
|
if (prop == propLANGUAGE) {
|
||||||
|
// The c_str pointer is valid until `this->Language` is modified.
|
||||||
|
return this->GetOrDetermineLanguage().c_str();
|
||||||
|
}
|
||||||
|
|
||||||
// Perform the normal property lookup.
|
// Perform the normal property lookup.
|
||||||
return this->GetProperty(prop);
|
return this->GetProperty(prop);
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,22 @@
|
|||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.1)
|
||||||
project(SourceFileProperty C)
|
project(SourceFileProperty C)
|
||||||
|
|
||||||
set(sources)
|
|
||||||
|
|
||||||
if (EXISTS icasetest.c)
|
if (EXISTS icasetest.c)
|
||||||
# If a file exists by this name, use it.
|
# If a file exists by this name, use it.
|
||||||
set_source_files_properties(icasetest.c
|
set_source_files_properties(icasetest.c
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
COMPILE_FLAGS -DNEEDED_TO_WORK)
|
COMPILE_DEFINITIONS NEEDED_TO_WORK)
|
||||||
else ()
|
else ()
|
||||||
# Work on case-sensitive file systems as well.
|
# Work on case-sensitive file systems as well.
|
||||||
set_source_files_properties(main.c
|
set_source_files_properties(main.c
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
COMPILE_FLAGS -DNO_NEED_TO_CALL)
|
COMPILE_DEFINITIONS NO_NEED_TO_CALL)
|
||||||
endif ()
|
endif ()
|
||||||
list(APPEND sources ICaseTest.c)
|
|
||||||
|
|
||||||
add_executable(SourceFileProperty main.c ${sources})
|
add_executable(SourceFileProperty main.c)
|
||||||
|
target_sources(SourceFileProperty PRIVATE ICaseTest.c)
|
||||||
|
|
||||||
|
get_property(LANG SOURCE ICaseTest.c PROPERTY LANGUAGE)
|
||||||
|
if (NOT "${LANG}" STREQUAL "C")
|
||||||
|
message(FATAL_ERROR "Bad language for file ICaseTest.c")
|
||||||
|
endif ()
|
||||||
|
Loading…
Reference in New Issue
Block a user