Commit Graph

25820 Commits

Author SHA1 Message Date
Fred Baksik 14f3ba2059 GHS: EXCLUDE_FROM_ALL updates
-- Excluded targets should be generated but not included in build ALL
-- Use the correct source list for this configuration when writing sources
2019-01-16 10:41:38 -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 b2a72ec72d GHS: Cleanup unused file handling functions and file output updates
-- File handling cleanup
-- Rename some functions to clarify what they do
-- Update to source file path conversion; only perform conversion when using windows
2019-01-16 10:41:31 -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 ead7117afd GHS: Update the top-level project generation
-- Sort targets by name
-- Generate a top-level project for each project command named as project.top.gpj
   Use the target set for the current project instead of assuming all targets
-- Add support for building projects not in binary root
-- Directly create files and pass ostream
-- Do no generate project files for UTILITY targets; this was never supported
-- Do no generate project files for OBJECT, SHARED, or MODULE libraries; this was never supported
-- Update GHS tags to support project types
   NOTE: The default tag is changed to "" because "[ ]" is an invalid token in project file
2019-01-16 10:41:20 -05:00
Fred Baksik e7825386e2 GHS: Cleanup how source files are listed
-- Sort the items of the project files, previously they were unsorted
   The layout is similar to Visual Studio projects
-- Do not make a make a tree of directories and projects files
   The main project file is in the binary folder
   The sub-project files are located in the project object directory
   This is similar to the Makefile generator
-- Allow the creation of a single project file
   If the variable or target property GHS_NO_SOURCE_GROUP_FILE is set
   then all sources will be listed in the main project file
2019-01-16 10:41:15 -05:00
Fred Baksik 447b57a267 GHS: Update binary structure so that install scripts work
GHS doesn't follow the binary structure that VS or Makefiles use
Also setting binary location outputs do not work

-- Update to act like Visual Studio Generator and use its project layout
-- Fix open/close issues where open() was used instead of Open()
   Now passes the file handle to all function that require it
-- Avoid triggering MULTI reloads; use SetCopyIfDifferent mode
2019-01-16 10:41:11 -05:00
Fred Baksik 6436080996 GHS: Have the top-level project name follow the specified project name 2019-01-16 10:41:07 -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
Regina Pfeifer 938f06fda6 ctest_submit: Add parameter SUBMIT_URL 2019-01-16 10:34:08 -05:00
Regina Pfeifer 65e725c957 CTest: Add option SubmitURL
Fixes: #18610
2019-01-16 10:34:08 -05:00
Regina Pfeifer 65f1fc9d63 CTest: Add function GetSubmitURL 2019-01-16 10:34:08 -05:00
Regina Pfeifer 2bedd5fb7c ctest_submit: Remove submit method from log output 2019-01-16 10:34:08 -05:00
Nils Gladitz 22b43b0009 VS: Add support for VS_DEBUGGER_* properties on custom targets
Visual studio itself supports the corresponding `LocalDebugger*`
properties on utility targets; support generating them from CMake as
well.
2019-01-16 10:21:01 -05:00
Tushar Maheshwari 0f08ed8936 cmSystemTools: Silence CreateLink and CreateSymlink errors
If provided, report errors to a std::string.
This allows "silent" fallback to another flow, like COPY_ON_ERROR.
2019-01-16 10:03:35 -05:00
Tushar Maheshwari 81650e488c cmFileCommand: Add CREATE_LINK subcommand
This brings the functionality of `cmake -E create_symlink` and more to scripts.

The default behavior is to create hard links.
The `SYMBOLIC` argument can be used to create symlinks instead.

The `COPY_ON_ERROR` argument enables a fallback to copying the file in case the link fails.

The `RESULT <var>` retrieves the error message generated by the system.
It is set to "0" on success.

Fixes: #16926
2019-01-16 10:03:35 -05:00
David Aguilar a5e948a36f find_package: optionally resolve symlinks when discovering packages
Teach find_package() to resolve symlinks when constructing
relocatable prefix paths from discovered cmake config files.
The `CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable enables
this behavior when set to `TRUE`.

Fixes: #18704
2019-01-16 09:59:46 -05:00
Brad King bd54cc774a Merge topic 'semi-warnings'
b056bc3425 Fix most clang -Wextra-semi-stmt warnings in C++ files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2795
2019-01-16 09:52:45 -05:00
Brad King e2c39e0573 Merge topic 'swift'
b90e6134a7 Ninja: add new placeholder `SWIFT_AUXILIARY_SOURCES`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Hancila <chancila@gmail.com>
Acked-by: Aaron Dierking <aarondierking7@gmail.com>
Merge-request: !2797
2019-01-16 09:52:10 -05:00
Brad King e44cc45530 Merge topic 'autogen_adaptive_warning'
5fe18eee13 Autogen: Adaptive missing Qt warning
f2f1661334 Autogen: Add and use QtAutoGen::Tools method
b2343ff086 Autogen: Fix rcc validity check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2806
2019-01-16 09:51:33 -05:00
Brad King a8b447d72e Merge topic 'support_per_toolset_json_flags'
c8ba777f6d GlobalVisualStudio10Generator: Support non-standard toolset json flag files.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2772
2019-01-16 09:50:00 -05:00
Brad King 68a30b50a5 Merge topic 'messenger-no-cmake'
cc2a5261f8 Factor out enum MessageType into dedicated header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2654
2019-01-16 09:47:14 -05:00
Bruno Manganelli cc2a5261f8 Factor out enum MessageType into dedicated header
Reduce the number of files relying on `cmake.h`.
2019-01-16 08:16:31 -05:00
Wil Stark a541d113e6 VS: Honor target_compile_definitions for C# projects
Fixes: #18698
2019-01-15 21:29:59 -08:00
Kitware Robot 7721b70e23 CMake Nightly Date Stamp 2019-01-16 00:01:07 -05:00
Sean McBride b056bc3425 Fix most clang -Wextra-semi-stmt warnings in C++ files
Suppress one in code generated by flex.
2019-01-15 14:09:46 -05:00
Brad King 41b0c0dc73 Merge topic 'vs2019'
57e48f16f2 VS: Add Visual Studio 16 2019 generator
bdef729646 VS: Parameterize VS 2017 generator to support future versions
68d316e0cf VS: Rename VS 2017 generator sources to be version-independent
d8ed309d05 VS: Parameterize cmVSSetupAPIHelper instances with VS version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2789
2019-01-15 13:23:38 -05:00
Brad King 67422bf579 Merge topic 'simplify-boolean-expr'
414aa6c81e clang-tidy: Simplify boolean expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2740
2019-01-15 13:21:21 -05:00
Brad King d7835e4d0e Merge topic 'fix-source-group-CMakeLists.txt'
77303314dc Restore support for a custom source group for CMakeLists.txt

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2803
2019-01-15 13:20:01 -05:00
Brad King 1d328d8119 Merge topic 'extendwhitelist'
59c408d053 cmTargetPropertyComputer: whitelist 'MANUALLY_ADDED_DEPENDENCIES'.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2808
2019-01-15 13:18:54 -05:00
Brad King 4cf301ca77 Merge topic 'vs10_cs_cf_support'
5b1364a2e3 cmVisualStudio10TargetGenerator: Fix .NET Compact Framework projects.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2715
2019-01-15 13:16:46 -05:00
Brad King 11e43a19a4 Merge topic 'refactor-cmDocumentation'
57862079d8 cmDocumentation: Get rid of raw pointers in AllSections map
4308eb3d16 cmDocumentationSection: Remove unused parameter in constructor

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2692
2019-01-15 13:14:25 -05:00
Brad King b2084a330d Merge topic 'deprecate-policy-old'
6845e2559d Add deprecation warnings for policies CMP0065 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2793
2019-01-15 13:12:08 -05:00
Brad King 5d3b8eed4b Merge topic 'update-kwsys'
0d88739736 Merge branch 'upstream-KWSys' into update-kwsys
a4841e12c0 KWSys 2019-01-14 (1541d849)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2801
2019-01-15 13:11:08 -05:00
Saleem Abdulrasool b90e6134a7 Ninja: add new placeholder SWIFT_AUXILIARY_SOURCES
The swift compilation model requires all sources for the module to be
listed for the compiler to type check across them.  Provide a
placeholder to allow enumerating the remainder of the swift sources in a
target for the language compile rule.

Issue: #18800
2019-01-15 09:13:33 -08:00
Regina Pfeifer 414aa6c81e clang-tidy: Simplify boolean expressions 2019-01-15 11:40:25 -05:00
Brad King d4a42dd4a8 Merge topic 'iwyu-clang-6'
cd0881be61 IWYU: Update CMake code for IWYU built with Clang 6

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2810
2019-01-15 11:38:24 -05:00
Kyle Edwards f3b7652efc Merge topic 'clang-scan-build-warnings'
9e4b6bcbe8 Source/LexerParser: Suppress "Use of zero-allocated memory" warning
613323a78b cmGlobalUnixMakefileGenerator3: Fix memory leak warning
bf2503089b liblzma: fix undefined shift result
ee555c2a33 libuv: fix clang scan-build warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2796
2019-01-15 10:07:02 -05:00
Brad King cd0881be61 IWYU: Update CMake code for IWYU built with Clang 6
IWYU now correctly requires `<utility>` for `std::move`.  It also
requires a container header when used via a range-based for loop.
2019-01-15 10:00:50 -05:00
Sebastian Holtermann 5fe18eee13 Autogen: Adaptive missing Qt warning
This makes the warning message for a missing Qt use
the requested Qt version in the message text.
2019-01-15 10:15:03 +01:00
Sebastian Holtermann f2f1661334 Autogen: Add and use QtAutoGen::Tools method 2019-01-15 09:52:35 +01:00
Kitware Robot 2033c1e56f CMake Nightly Date Stamp 2019-01-15 00:01:05 -05:00
Sebastian Lipponer 59c408d053 cmTargetPropertyComputer: whitelist 'MANUALLY_ADDED_DEPENDENCIES'. 2019-01-14 20:59:33 +01:00
Sebastian Holtermann b2343ff086 Autogen: Fix rcc validity check 2019-01-14 17:04:44 +01:00
Kyle Edwards 9e4b6bcbe8 Source/LexerParser: Suppress "Use of zero-allocated memory" warning
clang scan-build warns about YY_CURRENT_BUFFER_LVALUE being zero-
allocated, but the whole point of the macro is to know that it's
not zero. Wrap the entire file in an "#ifndef __clang_analyzer__"
block in order to suppress the warning.
2019-01-14 10:31:38 -05:00
Kyle Edwards 613323a78b cmGlobalUnixMakefileGenerator3: Fix memory leak warning
this->Makefiles.empty() is called twice, leading clang scan-build
to falsely believe that the delete statement was causing a memory
leak. Fix this by using a unique_ptr to hold the temporary
cmMakefile. This also has the benefit of making the code
exception-safe.
2019-01-14 09:53:12 -05:00
Brad King 9e03a63ba8 Merge topic 'drop-IRIX'
beb991110d Remove now-unused code once used on IRIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2791
2019-01-14 09:15:10 -05:00
Brad King e91f1616d9 Merge topic 'cpplint-no-output-no-warning'
c834c47dfc cpplint: only print diagnostics to console if there are errors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2788
2019-01-14 09:14:17 -05:00
Brad King 77303314dc Restore support for a custom source group for CMakeLists.txt
Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
target sources but instead generate references to them directly.  This
accidentally dropped generation of the `.vcxproj.filters` entry for a
source group in which `CMakeLists.txt` is the only member.

Fixes: #18795
2019-01-14 08:43:30 -05:00