[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