[CMake] problem with mac linker flags

David Cole david.cole at kitware.com
Wed Dec 22 17:57:07 EST 2010


There were recent bug fixes pushed to CMake 'next' (and I believe now to
'master' as well) to address the "headerpad_max_install_names" portion of
this discussion. It should be passed with "-Wl," now so that it passes
through to the linker on the Mac.

This particular error should go away if you use a nightly dev build of
CMake.

Try that and let us know if you get farther with nightly cmake.


Thanks,
David



On Wed, Dec 22, 2010 at 5:34 PM, Richard Wackerbarth <richard at nfsnet.org>wrote:

> On Dec 22, 2010, at 3:24 PM, Bill Hoffman wrote:
>
> > So, Darwin-icc.cmake is for the Intel compiler on the Mac.  The intel
> compiler does not want and can not have the -Wl, syntax. These modules need
> to be updated to the new way of handling compilers.
>
> If you will point me toward an example of "the new way", I will try to
> generate some patches for your review.
>
> BTW, I been looking at some of this code in order to get ObjC to compile
> correctly with different SDKs.
>
> In doing so, it appears that the cmSystemTools::FileFormat routines are no
> longer used anywhere.
> If I am correct, that code should be purged in order to minimize confusion.
>
> From df901a217e1d0ed9e472472ca86d9ac5aa1e6db6 Mon Sep 17 00:00:00 2001
> Date: Fri, 17 Dec 2010 18:32:05 -0600
> Subject: [PATCH] File Format is now determined within the Compiler-Specific
> Modules
>
> ---
>  Source/cmSystemTools.cxx |   65
> ----------------------------------------------
>  Source/cmSystemTools.h   |   24 -----------------
>  2 files changed, 0 insertions(+), 89 deletions(-)
>
> diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
> index 7bc89a4..31ceaa3 100644
> --- a/Source/cmSystemTools.cxx
> +++ b/Source/cmSystemTools.cxx
> @@ -1432,71 +1432,6 @@ bool cmSystemTools::SimpleGlob(const cmStdString&
> glob,
>   return res;
>  }
>
> -cmSystemTools::FileFormat cmSystemTools::GetFileFormat(const char* cext)
> -{
> -  if ( ! cext || *cext == 0 )
> -    {
> -    return cmSystemTools::NO_FILE_FORMAT;
> -    }
> -  //std::string ext = cmSystemTools::LowerCase(cext);
> -  std::string ext = cext;
> -  if ( ext == "c" || ext == ".c" ||
> -       ext == "m" || ext == ".m"
> -    ) { return cmSystemTools::C_FILE_FORMAT; }
> -  if (
> -    ext == "C" || ext == ".C" ||
> -    ext == "M" || ext == ".M" ||
> -    ext == "c++" || ext == ".c++" ||
> -    ext == "cc" || ext == ".cc" ||
> -    ext == "cpp" || ext == ".cpp" ||
> -    ext == "cxx" || ext == ".cxx" ||
> -    ext == "mm" || ext == ".mm"
> -    ) { return cmSystemTools::CXX_FILE_FORMAT; }
> -  if (
> -    ext == "f" || ext == ".f" ||
> -    ext == "F" || ext == ".F" ||
> -    ext == "f77" || ext == ".f77" ||
> -    ext == "f90" || ext == ".f90" ||
> -    ext == "for" || ext == ".for" ||
> -    ext == "f95" || ext == ".f95"
> -    ) { return cmSystemTools::FORTRAN_FILE_FORMAT; }
> -  if ( ext == "java" || ext == ".java" )
> -    { return cmSystemTools::JAVA_FILE_FORMAT; }
> -  if (
> -    ext == "H" || ext == ".H" ||
> -    ext == "h" || ext == ".h" ||
> -    ext == "h++" || ext == ".h++" ||
> -    ext == "hm" || ext == ".hm" ||
> -    ext == "hpp" || ext == ".hpp" ||
> -    ext == "hxx" || ext == ".hxx" ||
> -    ext == "in" || ext == ".in" ||
> -    ext == "txx" || ext == ".txx"
> -    ) { return cmSystemTools::HEADER_FILE_FORMAT; }
> -  if ( ext == "rc" || ext == ".rc" )
> -    { return cmSystemTools::RESOURCE_FILE_FORMAT; }
> -  if ( ext == "def" || ext == ".def" )
> -    { return cmSystemTools::DEFINITION_FILE_FORMAT; }
> -  if ( ext == "lib" || ext == ".lib" ||
> -       ext == "a" || ext == ".a")
> -    { return cmSystemTools::STATIC_LIBRARY_FILE_FORMAT; }
> -  if ( ext == "o" || ext == ".o" ||
> -       ext == "obj" || ext == ".obj")
> -    { return cmSystemTools::OBJECT_FILE_FORMAT; }
> -#ifdef __APPLE__
> -  if ( ext == "dylib" || ext == ".dylib" )
> -    { return cmSystemTools::SHARED_LIBRARY_FILE_FORMAT; }
> -  if ( ext == "so" || ext == ".so" ||
> -       ext == "bundle" || ext == ".bundle" )
> -    { return cmSystemTools::MODULE_FILE_FORMAT; }
> -#else // __APPLE__
> -  if ( ext == "so" || ext == ".so" ||
> -       ext == "sl" || ext == ".sl" ||
> -       ext == "dll" || ext == ".dll" )
> -    { return cmSystemTools::SHARED_LIBRARY_FILE_FORMAT; }
> -#endif // __APPLE__
> -  return cmSystemTools::UNKNOWN_FILE_FORMAT;
> -}
> -
>  bool cmSystemTools::Split(const char* s, std::vector<cmStdString>& l)
>  {
>   std::vector<std::string> temp;
> diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
> index 6f9147c..ad7ddc3 100644
> --- a/Source/cmSystemTools.h
> +++ b/Source/cmSystemTools.h
> @@ -249,25 +249,6 @@ public:
>   static void EnableRunCommandOutput() {s_DisableRunCommandOutput = false;
> }
>   static bool GetRunCommandOutput() { return s_DisableRunCommandOutput; }
>
> -  /**
> -   * Come constants for different file formats.
> -   */
> -  enum FileFormat {
> -    NO_FILE_FORMAT = 0,
> -    C_FILE_FORMAT,
> -    CXX_FILE_FORMAT,
> -    FORTRAN_FILE_FORMAT,
> -    JAVA_FILE_FORMAT,
> -    HEADER_FILE_FORMAT,
> -    RESOURCE_FILE_FORMAT,
> -    DEFINITION_FILE_FORMAT,
> -    STATIC_LIBRARY_FILE_FORMAT,
> -    SHARED_LIBRARY_FILE_FORMAT,
> -    MODULE_FILE_FORMAT,
> -    OBJECT_FILE_FORMAT,
> -    UNKNOWN_FILE_FORMAT
> -  };
> -
>   enum CompareOp {
>     OP_LESS,
>     OP_GREATER,
> @@ -280,11 +261,6 @@ public:
>   static bool VersionCompare(CompareOp op, const char* lhs, const char*
> rhs);
>
>   /**
> -   * Determine the file type based on the extension
> -   */
> -  static FileFormat GetFileFormat(const char* ext);
> -
> -  /**
>    * On Windows 9x we need a comspec (command.com) substitute to run
>    * programs correctly. This string has to be constant available
>    * through the running of program. This method does not create a copy.
> --
> 1.7.1+GitX
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20101222/d18fccb4/attachment-0001.htm>


More information about the CMake mailing list