[CMake] problem with mac linker flags

Richard Wackerbarth richard at NFSNet.org
Wed Dec 22 17:34:26 EST 2010


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


More information about the CMake mailing list