Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
CMake
CMake
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,197
    • Issues 3,197
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 19
    • Merge Requests 19
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • External Wiki
    • External Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards

Updates will be applied - Jan 26th, at 12pm EST (UTC-0500). GitLlab could be a little slow between 12 - 12:30pm EST.

  • CMake
  • CMakeCMake
  • Issues
  • #19631

Closed
Open
Opened Aug 22, 2019 by Alan W. Irwin@airwin

Pull request for a commit to support language-specific link flags

The preliminary discussion of this pull request occurs in a thread starting at https://cmake.org/pipermail/cmake/2019-August/069877.html.

This update to CMake is essential because it allows compilers for different languages that have different formats for link options (e.g., gcc for C and dmd for D) to be used in the same build.

This commit (see the attached compressed format-patch result for the final form of this commit) started life as

commit 5b7e123b27489fb4a6dcf943116821cf073532fe
Author: Ben Boeckel <mathstuf@gmail.com>
Date:   Tue Apr 15 00:21:15 2014 -0400

    linking: Support language-specific link flags

in this unofficial version of CMake. I rebased this commit on the official CMake master branch (which required some conflict resolution).

I used PLplot to test the current pull request for CMake. PLplot builds language bindings for our C plotting library and corresponding examples written in a number of different computer languages including D, where the CMake language support for D is provided by a patched form of the cmake-d project. PLplot provides stringent tests of our D binding and examples (where we compare SVG plot file results for our ~30 D examples with corresponding results for the equivalent C examples) for our three major PLplot configurations (shared libraries + dynamic devices, shared libraries + nondynamic devices, and static libraries + nondynamic devices). And for a version of CMake updated by the current pull request, those test results were perfect for all three D compilers (gdc, ldc, and dmd) that are supported by cmake-d. Equivalent test results for a version of CMake that is not updated with the current pull request were perfect for gdc (because gdc has the same linking flags as the other Linux compilers used by PLplot) but fail for ldc and dmd. The reason for those failures without the current pull request is ldc and dmd use different linking flags than the rest of the Linux compilers used by PLplot and the (patched) cmake-d support for ldc and dmd depends on the language-specific link flags that are implemented by the current pull request.

To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
3.16.0
Milestone
3.16.0 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: cmake/cmake#19631