[Cmake-commits] CMake branch, next, updated. v3.5.2-1471-gd07ce8d
Brad King
brad.king at kitware.com
Wed May 18 09:27:54 EDT 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via d07ce8d49ab9401a0d26452746677cfb94c9c5e9 (commit)
via d7233a0472aae1f15f4c35f214294d9baf1b5e1f (commit)
from 1186c697351081db7f7e886d00bd94b8311d362b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d07ce8d49ab9401a0d26452746677cfb94c9c5e9
commit d07ce8d49ab9401a0d26452746677cfb94c9c5e9
Merge: 1186c69 d7233a0
Author: Brad King <brad.king at kitware.com>
AuthorDate: Wed May 18 09:27:53 2016 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed May 18 09:27:53 2016 -0400
Merge topic 'ghs-shorter-object-names' into next
d7233a04 GHS: Use shorter object file names on collision
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d7233a0472aae1f15f4c35f214294d9baf1b5e1f
commit d7233a0472aae1f15f4c35f214294d9baf1b5e1f
Author: Geoff Viola <geoffrey.viola at asirobots.com>
AuthorDate: Sun May 15 09:59:43 2016 -0600
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed May 18 09:27:19 2016 -0400
GHS: Use shorter object file names on collision
diff --git a/Modules/Compiler/GHS-C.cmake b/Modules/Compiler/GHS-C.cmake
index 50532ce..3072715 100644
--- a/Modules/Compiler/GHS-C.cmake
+++ b/Modules/Compiler/GHS-C.cmake
@@ -1,6 +1,7 @@
include(Compiler/GHS)
set(CMAKE_C_VERBOSE_FLAG "-v")
+set(CMAKE_C_OUTPUT_EXTENSION ".o")
set(CMAKE_C_FLAGS_INIT "")
set(CMAKE_C_FLAGS_DEBUG_INIT "-Odebug -g")
diff --git a/Modules/Compiler/GHS-CXX.cmake b/Modules/Compiler/GHS-CXX.cmake
index 2cffa0d..a51591b 100644
--- a/Modules/Compiler/GHS-CXX.cmake
+++ b/Modules/Compiler/GHS-CXX.cmake
@@ -1,6 +1,7 @@
include(Compiler/GHS)
set(CMAKE_CXX_VERBOSE_FLAG "-v")
+set(CMAKE_CXX_OUTPUT_EXTENSION ".o")
set(CMAKE_CXX_FLAGS_INIT "")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Odebug -g")
diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx
index 325a86e..5e13d4c 100644
--- a/Source/cmGhsMultiTargetGenerator.cxx
+++ b/Source/cmGhsMultiTargetGenerator.cxx
@@ -18,7 +18,6 @@
#include "cmSourceFile.h"
#include "cmTarget.h"
#include <assert.h>
-#include <cmAlgorithms.h>
std::string const cmGhsMultiTargetGenerator::DDOption("-dynamic");
@@ -466,20 +465,14 @@ cmGhsMultiTargetGenerator::GetObjectNames(
for (std::vector<cmSourceFile*>::const_iterator sf =
duplicateSources.begin();
sf != duplicateSources.end(); ++sf) {
- static std::string::size_type const MAX_FULL_PATH_LENGTH = 247;
std::string const longestObjectDirectory(
cmGhsMultiTargetGenerator::ComputeLongestObjectDirectory(
localGhsMultiGenerator, generatorTarget, *sf));
- std::string fullFilename = (*sf)->GetFullPath();
- bool const ObjPathFound = cmLocalGeneratorCheckObjectName(
- fullFilename, longestObjectDirectory.size(), MAX_FULL_PATH_LENGTH);
- if (!ObjPathFound) {
- cmSystemTools::Error("Object path \"", fullFilename.c_str(),
- "\" too long", "");
- }
- cmsys::SystemTools::ReplaceString(fullFilename, ":/", "_");
- cmsys::SystemTools::ReplaceString(fullFilename, "/", "_");
- objectNamesCorrected[*sf] = fullFilename;
+ std::string objFilenameName =
+ localGhsMultiGenerator->GetObjectFileNameWithoutTarget(
+ **sf, longestObjectDirectory);
+ cmsys::SystemTools::ReplaceString(objFilenameName, "/", "_");
+ objectNamesCorrected[*sf] = objFilenameName;
}
return objectNamesCorrected;
@@ -517,8 +510,7 @@ void cmGhsMultiTargetGenerator::WriteSources(
this->WriteObjectLangOverride(this->FolderBuildStreams[sgPath], (*si));
if (objectNames.end() != objectNames.find(*si)) {
*this->FolderBuildStreams[sgPath]
- << " -o \"" << objectNames.find(*si)->second << ".o\""
- << std::endl;
+ << " -o \"" << objectNames.find(*si)->second << "\"" << std::endl;
}
this->WriteObjectDir(this->FolderBuildStreams[sgPath],
diff --git a/Tests/GhsMultiDuplicateSourceFilenames/CMakeLists.txt b/Tests/GhsMultiDuplicateSourceFilenames/CMakeLists.txt
index ffdb582..82a014b 100644
--- a/Tests/GhsMultiDuplicateSourceFilenames/CMakeLists.txt
+++ b/Tests/GhsMultiDuplicateSourceFilenames/CMakeLists.txt
@@ -1,7 +1,12 @@
cmake_minimum_required(VERSION 3.5)
project(demo C)
-add_library(libdemo test.c subfolder/test.c)
+add_library(libdemo
+ test.c
+ subfolder_test.c
+ subfolder_test_0.c
+ "subfolder/test.c"
+)
add_executable(demo main.c)
target_link_libraries(demo libdemo)
diff --git a/Tests/GhsMultiDuplicateSourceFilenames/main.c b/Tests/GhsMultiDuplicateSourceFilenames/main.c
index 301a32e..d5b7914 100644
--- a/Tests/GhsMultiDuplicateSourceFilenames/main.c
+++ b/Tests/GhsMultiDuplicateSourceFilenames/main.c
@@ -1,9 +1,13 @@
int test_a(void);
int test_b(void);
+int test_c(void);
+int test_d(void);
int main(int argc, char* argv[])
{
test_a();
test_b();
+ test_c();
+ test_d();
return 0;
}
diff --git a/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test.c b/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test.c
new file mode 100644
index 0000000..c552e6a
--- /dev/null
+++ b/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test.c
@@ -0,0 +1,5 @@
+
+int test_c()
+{
+ return 1;
+}
diff --git a/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test_0.c b/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test_0.c
new file mode 100644
index 0000000..170b33d
--- /dev/null
+++ b/Tests/GhsMultiDuplicateSourceFilenames/subfolder_test_0.c
@@ -0,0 +1,5 @@
+
+int test_d()
+{
+ return 1;
+}
-----------------------------------------------------------------------
Summary of changes:
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list