Merge topic 'ghs-updates'
04de9007
GHS: Fix generated file path slashes and quoting for 6.1.6fbe0de92
GHS: Tell MULTI to delete .elf.ael file63591b94
GHS: Find latest 'int' directory
This commit is contained in:
commit
5ed30f30f5
|
@ -13,13 +13,35 @@
|
|||
# License text for the above reference.)
|
||||
|
||||
#Setup Greenhills MULTI specific compilation information
|
||||
find_path(GHS_INT_DIRECTORY INTEGRITY.ld PATHS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\GreenHillsSoftware6433c345;InstallLocation]" #int1122
|
||||
"C:/ghs/int1122"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\GreenHillsSoftware289b6625;InstallLocation]" #int1104
|
||||
"C:/ghs/int1104"
|
||||
DOC "Path to integrity directory"
|
||||
)
|
||||
|
||||
if (NOT GHS_INT_DIRECTORY)
|
||||
#Assume the C:/ghs/int#### directory that is latest is prefered
|
||||
set(GHS_EXPECTED_ROOT "C:/ghs")
|
||||
if (EXISTS ${GHS_EXPECTED_ROOT})
|
||||
FILE(GLOB GHS_CANDIDATE_INT_DIRS RELATIVE
|
||||
${GHS_EXPECTED_ROOT} ${GHS_EXPECTED_ROOT}/*)
|
||||
string(REGEX MATCHALL "int[0-9][0-9][0-9][0-9]" GHS_CANDIDATE_INT_DIRS
|
||||
${GHS_CANDIDATE_INT_DIRS})
|
||||
if (GHS_CANDIDATE_INT_DIRS)
|
||||
list(SORT GHS_CANDIDATE_INT_DIRS)
|
||||
list(GET GHS_CANDIDATE_INT_DIRS -1 GHS_INT_DIRECTORY)
|
||||
string(CONCAT GHS_INT_DIRECTORY ${GHS_EXPECTED_ROOT} "/"
|
||||
${GHS_INT_DIRECTORY})
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#Try to look for known registry values
|
||||
if (NOT GHS_INT_DIRECTORY)
|
||||
find_path(GHS_INT_DIRECTORY INTEGRITY.ld PATHS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\GreenHillsSoftware6433c345;InstallLocation]" #int1122
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\GreenHillsSoftware289b6625;InstallLocation]" #int1104
|
||||
)
|
||||
endif ()
|
||||
|
||||
set(GHS_INT_DIRECTORY ${GHS_INT_DIRECTORY} CACHE PATH
|
||||
"Path to integrity directory")
|
||||
endif ()
|
||||
|
||||
set(GHS_OS_DIR ${GHS_INT_DIRECTORY} CACHE PATH "OS directory")
|
||||
set(GHS_PRIMARY_TARGET "arm_integrity.tgt" CACHE STRING "target for compilation")
|
||||
set(GHS_BSP_NAME "simarm" CACHE STRING "BSP name")
|
||||
|
|
|
@ -151,10 +151,6 @@ void cmGhsMultiTargetGenerator::Generate()
|
|||
this->WriteTargetLinkLibraries();
|
||||
}
|
||||
this->WriteCustomCommands();
|
||||
if (this->DynamicDownload)
|
||||
{
|
||||
*this->GetFolderBuildStreams() << " " << this->DDOption << std::endl;
|
||||
}
|
||||
|
||||
this->WriteSources(objectSources);
|
||||
}
|
||||
|
@ -230,9 +226,11 @@ void cmGhsMultiTargetGenerator::WriteTypeSpecifics(const std::string &config,
|
|||
}
|
||||
if (this->IsTargetGroup())
|
||||
{
|
||||
*this->GetFolderBuildStreams() << " -non_shared" << std::endl;
|
||||
*this->GetFolderBuildStreams() << " -o \"" << outputDir
|
||||
<< outputFilename << ".elf\""
|
||||
*this->GetFolderBuildStreams()
|
||||
<< " {optgroup=GhsCommonOptions} -o \"" << outputDir
|
||||
<< outputFilename << ".elf\"" << std::endl;
|
||||
*this->GetFolderBuildStreams() << " :extraOutputFile=\"" << outputDir
|
||||
<< outputFilename << ".elf.ael\""
|
||||
<< std::endl;
|
||||
}
|
||||
else
|
||||
|
@ -454,14 +452,17 @@ void cmGhsMultiTargetGenerator::WriteSources(
|
|||
this->Makefile->GetHomeOutputDirectory(), sgPath,
|
||||
GhsMultiGpj::SUBPROJECT, this->RelBuildFilePath);
|
||||
|
||||
if ((*si)->GetExtension() == ".int")
|
||||
std::string fullSourcePath((*si)->GetFullPath());
|
||||
if ((*si)->GetExtension() == "int" || (*si)->GetExtension() == "bsp")
|
||||
{
|
||||
*this->FolderBuildStreams[sgPath] << "\"" << (*si)->GetFullPath() << "\""
|
||||
<< std::endl;
|
||||
*this->FolderBuildStreams[sgPath] << fullSourcePath << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
*this->FolderBuildStreams[sgPath] << (*si)->GetFullPath() << std::endl;
|
||||
//WORKAROUND: GHS MULTI needs the path to use backslashes without quotes
|
||||
// to open files in search as of version 6.1.6
|
||||
cmsys::SystemTools::ReplaceString(fullSourcePath, "/", "\\");
|
||||
*this->FolderBuildStreams[sgPath] << fullSourcePath << std::endl;
|
||||
}
|
||||
|
||||
if ("ld" != (*si)->GetExtension() && "int" != (*si)->GetExtension() &&
|
||||
|
|
Loading…
Reference in New Issue