Commit Graph

9046 Commits

Author SHA1 Message Date
Fred Baksik
72e0c115b7 GHS: Add Compiler ID detection
-- Detect GHS compiler and version
   Detect ARCHITECTURE_ID for PPC / ARM / 86 targets
   Detect PLATFORM_ID for Integrity and Integrity178 platforms
   Using defines specified in the documents for the compilers: 201416 PPC / 201754 ARM / 201714 86
-- Fallback C/CXX compiler ID to GHS if not otherwise detected and using GHS MULTI generator
   Works around issue with some GHS compilers not setting __ghs__ compiler define
-- Tweak Compiler ID checking so major id of 002017 is not replaced with 217
-- Prefer try_compile() library targets when testing for working GHS compilers
-- Avoid CMake errors if reading past end of file for checking if file is PE executable
2019-01-16 10:42:04 -05:00
Fred Baksik
702121c5f3 GHS: Use the correct compiler flags for CMAKE_BUILD_TYPE
-- Do not use CMAKE_C_FLAGS_RELEASE flags when CMAKE_BUILD_TYPE is empty
   if CMAKE_BUILD_TYPE was not set the generator would use Release settings
   this does not match the documented behavior of CMAKE_BUILD_TYPE

-- CMAKE_C_FLAGS_<CONFIG> not used when -kernel is present
   Fixes issue where CMAKE_C_FLAGS_<CONFIG> is ignored when -kernel option is present as a compiler option
   When the -kernel option is added to an executable it uses a different set of language flags
   This does not occur -kernel=<type> is used or if it is added as part of a link flag
   The variables CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG> are removed
   NOTE: By default this only added the flag -ldebug which links in the debugger library.

-- Separate compiler options by newlines
2019-01-16 10:41:35 -05:00
Fred Baksik
595932c4f0 GHS: Update the link line processing
-- add missing executable linker libs from:
   CMAKE_C_STANDARD_LIBRARIES
-- add missed transitive link libraries
-- add skipped library linker options
-- The linker expects -l../relative/path/to/lib.a to be relative to the top-level project
   Because there can be multiple top-level projects convert the path to an absolute path to target
2019-01-16 10:41:27 -05:00
Fred Baksik
2ed2d6b46f GHS: Place build system outputs per target output directives
-- Set output and object file locations
-- Suffixes are no longer being forced but will now follow the target properties
   By default GHS tools have no suffix for executable files so
   CMAKE_EXECUTABLE_SUFFIX was changed to meet this behavior
-- Remove #if 0 blocked out code; it has been replaced.
   Forcing the -relprog option has been removed from non-kernel executable targets.
   The default value of this option (if it is even available) is determined by the
   tool-chain for the specified target and platform (Some tool-chains default to
   -locatedprogram).  The use of -relprog can have unexpected results as it cannot
   always produce a fully relocated executable.
-- Clarify use of CMAKE_BUILD_TYPE to control build configuration
2019-01-16 10:41:24 -05:00
Fred Baksik
a42e40e78d GHS: Only print bsp and os directives if specified by user
-- standalone platforms will not build if bsp/os is specified in project file
-- integrity platforms will always print these directives because they are required
-- cleanup -os_dir setting
   allow customization of the actual setting because it is determined by tool-set customization files
   remove variable that was set but never used
-- add message when using default values
2019-01-16 10:40:59 -05:00
Ethan Slattery
270965e0c7 IAR: Update compiler modules to support AVR systems
Fixes: #18557
2019-01-15 13:59:01 -05:00
Ethan Slattery
7414d422b2 IAR: Parse INFO strings from the binary format of AVR systems
Teach `CMakeDetermineCompilerId` to recognize and parse the IAR-AVR
binary format so we can recognize this compiler id.

Issue: #18557
2019-01-15 13:58:53 -05:00
Brad King
da566d4de8 Merge topic 'fetchcontent-uses-terminal'
2119c33b7e FetchContent: Give access to the terminal for download and update

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.co>
Merge-request: !2800
2019-01-15 13:26:02 -05:00
Brad King
bf1a1caefe Merge topic 'check-fortran-run'
10a1477b63 CheckFortranSourceRuns: Add module to check if Fortran code runs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2714
2019-01-15 13:15:44 -05:00
Craig Scott
2119c33b7e FetchContent: Give access to the terminal for download and update
A main scenario where this is needed is when a git operation
needs the password to a private key and asks for it on the
console. Without this change, such operations can appear to
hang indefinitely with no prompt if QUIET is in effect (which it
is by default).

Another scenario this addresses is when progress of a
download or update should be shown. Without this change,
all such progress is buffered with some generators and will
only be shown at the end, which defeats the purpose of logging
any progress to begin with.

Relates: #18238
2019-01-14 23:32:18 +11:00
Brad King
beb991110d Remove now-unused code once used on IRIX
We dropped support for IRIX as a host platform long ago.
Remove some leftover code.
2019-01-11 13:50:46 -05:00
Brad King
696c6afcaf Merge topic 'FindBoost-1.70'
266808c413 FindBoost: Add support for Boost 1.70

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2747
2019-01-11 08:00:45 -05:00
Brad King
f15345be41 Merge topic 'FindICE-more-exe'
fbb115d198 FindIce: Find slice2confluence and slice2matlab executables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2773
2019-01-11 07:56:11 -05:00
Brad King
283c93fe9a Merge topic 'xl-early-bE'
74720a298c XL: Move '-bE' flag earlier so it can be overridden

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2771
2019-01-11 07:52:53 -05:00
Brad King
9e8f2e509f Merge topic 'bison_target_policy'
5000fed5af FindBISON: Add policy CMP0088 to run bison in build tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2774
2019-01-11 07:52:05 -05:00
Brad King
003759ba0d Merge topic 'threads'
5a5a1d90f0 Help: FindThreads not needed with modern C++.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2776
2019-01-11 07:42:54 -05:00
jspam
fbb115d198 FindIce: Find slice2confluence and slice2matlab executables 2019-01-10 14:36:10 -05:00
Rob Boehne
74720a298c XL: Move '-bE' flag earlier so it can be overridden
By default, we generate an export list for a shared library and pass
that file on the link line.  The problem was that it could not be
overridden by a target when a specific export file is being used.
Multiple `-bE` flags on the link are overridden by subsequent `-bE`
flags, so only the last one is used.

Fixes: #13282
2019-01-10 14:25:06 -05:00
Michael Hirsch, Ph.D
10a1477b63 CheckFortranSourceRuns: Add module to check if Fortran code runs
Add a Fortran equivalent to the existing `Check{C,CXX}SourceRuns`
modules.
2019-01-10 14:09:12 -05:00
Robert Maynard
5000fed5af FindBISON: Add policy CMP0088 to run bison in build tree 2019-01-10 13:23:14 -05:00
Craig Scott
1fe3d126a5 Merge topic 'BundleUtilities-make-dir'
200bf57742 BundleUtilities: Ensure target dir exists when creating symlinks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !2728
2019-01-09 16:41:38 -05:00
Joachim Wuttke (o)
5a5a1d90f0 Help: FindThreads not needed with modern C++. 2019-01-09 11:03:44 +01:00
Tim Blechmann
200bf57742 BundleUtilities: Ensure target dir exists when creating symlinks
Commit v3.13.0-rc1~279^2 (GetPrerequisites: Move dylibs from MacOS
to Frameworks folder in bundle, 2018-07-22) introduced a regression
that can cause symlink creation to fail during packaging. Symlinks
can be created before targets are installed, so the destination
directory of the symlink sometimes won't exist at symlink creation.

Fixes: #18726
2019-01-08 19:56:34 +11:00
Craig Scott
99a0a6d816 Merge topic 'bundle_fixes'
08be74bfd7 GetPrerequisites: Fix handling of executable scripts
52445300d6 GetPrerequisites: Allow prefixed tools
1bac4678ea GetPrerequisites: Add GET_PREREQUISITES_VERBOSE to set verbose
5072598f07 BundleUtilites: Don't use hardcoded name for install_name_tool
428680da92 GetPrerequisites: Don't use hardcoded name for otool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2748
2019-01-06 15:05:32 -05:00
Alexander Grund
08be74bfd7 GetPrerequisites: Fix handling of executable scripts
Fixes: #18667
2019-01-05 09:09:39 +11:00
Marc Chevrier
e7a88ce482 Merge branch 'swig_src_file_ext' into 'master'
UseSWIG: Add support for custom Swig source file extensions

Closes #18727

See merge request cmake/cmake!2764
2019-01-04 05:16:41 -05:00
Thirumal Venkat
9816748847 SWIG: Add support for custom Swig source file extensions 2019-01-03 09:36:15 +05:30
Craig Scott
a7dcf130e9 Merge topic 'gtest-discovery-work-dir'
3bbf77fa01 Specify WORKING_DIRECTORY to execute_process() in GoogleTestAddTests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2761
2018-12-31 17:07:13 -05:00
Alexander Grund
52445300d6 GetPrerequisites: Allow prefixed tools
e.g. for cross-compilation with e.g. x86_64-pc-linux-gnu-ldd
2018-12-31 11:56:40 +11:00
Alexander Grund
1bac4678ea GetPrerequisites: Add GET_PREREQUISITES_VERBOSE to set verbose 2018-12-31 11:56:40 +11:00
Alexander Grund
5072598f07 BundleUtilites: Don't use hardcoded name for install_name_tool 2018-12-31 11:56:40 +11:00
Alexander Grund
428680da92 GetPrerequisites: Don't use hardcoded name for otool 2018-12-30 15:08:49 +01:00
Craig Scott
c79b98af37 Merge topic 'remove-include-cmakeparsearguments'
88b40744b5 CMakeParseArguments: Remove superfluous includes of CMakeParseArguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !2744
2018-12-29 16:45:57 -05:00
Nehal J Wani
3bbf77fa01 Specify WORKING_DIRECTORY to execute_process() in GoogleTestAddTests 2018-12-28 17:44:51 +05:30
Craig Scott
d480ede35b Merge topic 'link-options'
f255280fd9 PIE link options: Update strategy to fix performance regression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2739
2018-12-23 17:23:11 -05:00
Craig Scott
91bcb88c3c Merge topic 'output-on-failure'
19d86e26e3 ExternalProject: add LOG_OUTPUT_ON_FAILURE option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2625
2018-12-21 16:21:47 -05:00
Wouter Klouwen
19d86e26e3 ExternalProject: add LOG_OUTPUT_ON_FAILURE option
This option only has an effect if at least one of the other LOG_<step>
options is enabled.  If an error occurs for a step which has logging to
file enabled, that step's output will be printed to the console.  For
cases where a large amount of output is recorded, just the end of that
output may be printed to the console.
2018-12-21 07:52:08 +11:00
Marc Chevrier
feafc7f3fe Help: FindLibLZMA: update formatting. 2018-12-20 15:26:51 +01:00
Marc Chevrier
0495ce4f98 Merge branch 'topic-findliblzma' into 'master'
FindLibLZMA: add imported target

Closes #18679 and #18680

See merge request cmake/cmake!2730
2018-12-20 06:17:35 -05:00
Marc Chevrier
f255280fd9 PIE link options: Update strategy to fix performance regression
Fixes: #18700
2018-12-19 19:41:27 +11:00
Mateusz Łoskot
266808c413 FindBoost: Add support for Boost 1.70
Boost master and develop branches just bumped the version.
2018-12-18 15:33:09 +01:00
Kyle Edwards
88b40744b5 CMakeParseArguments: Remove superfluous includes of CMakeParseArguments
Because cmake_parse_arguments() has been implemented as a native
command, there is no need to include(CMakeParseArguments) anymore.
Its inclusion has been removed from several CMake modules.

Tests/CMakeOnly/CMakeLists.txt has been changed to include the
*building* CMake's copy of CMakeParseArguments rather than the
*built* CMake's copy. This file included the *built* copy because
when this file was introduced, CMake could still be built with versions
that didn't supply cmake_parse_arguments(). Now, CMake requires 3.1 or
greater, where cmake_parse_arguments() existed but was still in the
form of a module, so we include it from the *building* CMake.
2018-12-13 19:51:01 -05:00
Brad King
6589f67fb7 Merge topic 'UseJava-jar-depends'
5aa88f0e02 UseJava: add_jar: rebuild jar on dependencies changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2727
2018-12-13 10:02:14 -05:00
Hiroshi Miura
9644c835b3 FindLibLZMA: add imported target
- Add imported target LibLZMA::LibLZMA
- Show found message with library path
- Add test for FindLibLZMA

Fixes: #18680, #18679

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
2018-12-13 09:40:11 +09:00
Brad King
a23ac516b3 Merge topic 'machoFormat'
c86e82c092 Add Mach-O CMAKE_EXECUTABLE_FORMAT detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2722
2018-12-12 08:25:04 -05:00
Brad King
4a5e003d4c Merge topic 'FindThreads-drop-irix'
83dab0c123 FindThreads: Drop IRIX-specific options and results

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2717
2018-12-12 08:24:10 -05:00
Marc Chevrier
5aa88f0e02 UseJava: add_jar: rebuild jar on dependencies changes
Fixes: #18683
2018-12-11 15:17:24 +01:00
Maikel van den Hurk
c86e82c092 Add Mach-O CMAKE_EXECUTABLE_FORMAT detection
Code for this was prototyped when ELF detection was added long ago but
left commented out.  Use either MH_MAGIC or MH_CIGAM for the 32-bit
variant and use either or MH_MAGIC_64 or MH_CIGAM_64 for the 64-bit
variant.
2018-12-10 14:41:42 -05:00
Anton Chernov
7a5a8eb0c5 CUDA: Add CUDA 10 (Turing) detection 2018-12-10 09:15:58 -05:00
Brad King
d3983f7fc6 Merge topic 'SWIG'
dff28141dc UseSWIG: add management of SWIG option -module
7b3d4799f8 Help: update policy 0078 documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2669
2018-12-10 08:23:42 -05:00