[MacPorts] #42872: cmake PortGroup: don't add -I${prefix}/include to CXXFLAGS

MacPorts noreply at macports.org
Mon Mar 31 11:06:33 PDT 2014


#42872: cmake PortGroup: don't add -I${prefix}/include to CXXFLAGS
----------------------+--------------------------------
  Reporter:  mojca@…  |      Owner:  macports-tickets@…
      Type:  defect   |     Status:  new
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:
Resolution:           |   Keywords:
      Port:  clhep    |
----------------------+--------------------------------
Changes (by and.damore@…):

 * port:  clhep cmake => clhep


Old description:

> CMake is automatically fed with too many (too early) includes of
> `$prefix/include`:
>
> {{{
> CPPFLAGS='-I/opt/local/include'
> CFLAGS='-pipe -Os -I/opt/local/include -arch x86_64'
> CXXFLAGS='-pipe -Os -I/opt/local/include -arch x86_64'
> }}}
> with the following explanation in the `PortGroup`:
> {{{
> # The environment variable CPPFLAGS is not considered by CMake.
> # (CMake upstream ticket #12928 "CMake silently ignores CPPFLAGS"
> # <http://www.cmake.org/Bug/view.php?id=12928>).
> # Thus, we have to add them manually to the CFLAGS and CXXFLAGS in the
> # pre-configure phase.
> if {${configure.cppflags} ne ""} {
>     configure.cflags-append ${configure.cppflags}
>     configure.cxxflags-append ${configure.cppflags}
> }
> }}}
>
> As a consequence the CMake-based installations have problems when
> function definitions change in an upgrade. I don't know if I should blame
> the developers for that or not. (In case of CLHEP, the
> `./configure`-based installation puts `-I.` in front of `CPPFLAGS`, so
> headers from sources are found first, but in CMake-based installation
> `-I.` comes later.)
>
> We should check whether we could use
> [http://www.cmake.org/Wiki/CMake_Useful_Variables CMAKE_INCLUDE_PATH]
> (`-DCMAKE_INCLUDE_PATH=${prefix}/include`) instead of `configure
> .cxxflags-append ${configure.cppflags}` for example.
>
> See also:
>   * https://savannah.cern.ch/bugs/index.php?103664 (and ticket #42613)
>   * http://www.cmake.org/Wiki/CMake_Useful_Variables

New description:

 The configure phase of a port using cmake portgroup is automatically fed
 with too many (too early) includes of `$prefix/include`:

 {{{
 CPPFLAGS='-I/opt/local/include'
 CFLAGS='-pipe -Os -I/opt/local/include -arch x86_64'
 CXXFLAGS='-pipe -Os -I/opt/local/include -arch x86_64'
 }}}
 with the following explanation in the `PortGroup`:
 {{{
 # The environment variable CPPFLAGS is not considered by CMake.
 # (CMake upstream ticket #12928 "CMake silently ignores CPPFLAGS"
 # <http://www.cmake.org/Bug/view.php?id=12928>).
 # Thus, we have to add them manually to the CFLAGS and CXXFLAGS in the
 # pre-configure phase.
 if {${configure.cppflags} ne ""} {
     configure.cflags-append ${configure.cppflags}
     configure.cxxflags-append ${configure.cppflags}
 }
 }}}

 As a consequence the CMake-based installations have problems when function
 definitions change in an upgrade. I don't know if I should blame the
 developers for that or not. (In case of CLHEP, the `./configure`-based
 installation puts `-I.` in front of `CPPFLAGS`, so headers from sources
 are found first, but in CMake-based installation `-I.` comes later.)

 We should check whether we could use
 [http://www.cmake.org/Wiki/CMake_Useful_Variables CMAKE_INCLUDE_PATH]
 (`-DCMAKE_INCLUDE_PATH=${prefix}/include`) instead of `configure.cxxflags-
 append ${configure.cppflags}` for example.

 See also:
   * https://savannah.cern.ch/bugs/index.php?103664 (and ticket #42613)
   * http://www.cmake.org/Wiki/CMake_Useful_Variables

--

-- 
Ticket URL: <https://trac.macports.org/ticket/42872#comment:5>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list