[Cmake-commits] CMake branch, next, updated. v2.8.5-1386-gd4eb84d

Alexander Neundorf neundorf at kde.org
Mon Aug 1 19:50:26 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  d4eb84d0efba4801d3411565d96fb7a66c4481b6 (commit)
       via  e2e8c0a41225f5449a8139a1ce0219940f902665 (commit)
       via  92c0dc50fc73dd9866f48c521b0aff7473eb3a59 (commit)
       via  a5683f80bdc1c8c78d8db47f5695e0be3cc19afe (commit)
      from  c91bef714acbad0aca679cfeba2039d1e233c519 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4eb84d0efba4801d3411565d96fb7a66c4481b6
commit d4eb84d0efba4801d3411565d96fb7a66c4481b6
Merge: c91bef7 e2e8c0a
Author:     Alexander Neundorf <neundorf at kde.org>
AuthorDate: Mon Aug 1 19:50:19 2011 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Aug 1 19:50:19 2011 -0400

    Merge topic 'CodeBlocksIncludeDirsAndDefines' into next
    
    e2e8c0a Also put builtin include dirs into CodeBlocks project file
    92c0dc5 Remove useless line of code
    a5683f8 Patch by Campbell Barton: puts definitions into C::B project file


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e2e8c0a41225f5449a8139a1ce0219940f902665
commit e2e8c0a41225f5449a8139a1ce0219940f902665
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Tue Aug 2 01:46:39 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Tue Aug 2 01:46:39 2011 +0200

    Also put builtin include dirs into CodeBlocks project file
    
    Refactor code from CMakeFindEclipseCDT4.cmake so it can be used
    alkso for CodeBlocks, and move it into new file
    CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake.
    
    Alex

diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
similarity index 65%
copy from Modules/CMakeFindEclipseCDT4.cmake
copy to Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
index a756e64..55c37c2 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
@@ -12,20 +12,10 @@
 # (To distribute this file outside of CMake, substitute the full
 #  License text for the above reference.)
 
-# This file is included in CMakeSystemSpecificInformation.cmake if
-# the Eclipse CDT4 extra generator has been selected.
+# This file is included by CMakeFindEclipseCDT4.cmake and CMakeFindCodeBlocks.cmake
 
-FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable")
-
-# This variable is used by the Eclipse generator and appended to the make invocation commands.
-SET(CMAKE_ECLIPSE_MAKE_ARGUMENTS "" CACHE STRING "Additional command line arguments when Eclipse invokes make. Enter e.g. -j<some_number> to get parallel builds")
-
-# This variable is used by the Eclipse generator in out-of-source builds only.
-SET(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT FALSE CACHE BOOL "If enabled, CMake will generate a source project for Eclipse in CMAKE_SOURCE_DIR")
-MARK_AS_ADVANCED(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT)
-
-# The Eclipse generator needs to know the standard include path
-# so that Eclipse ca find the headers at runtime and parsing etc. works better
+# The Eclipse and the CodeBlocks generators need to know the standard include path
+# so that they can find the headers at runtime and parsing etc. works better
 # This is done here by actually running gcc with the options so it prints its
 # system include directories, which are parsed then and stored in the cache.
 MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines)
@@ -35,9 +25,9 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines
 
   IF (${_lang} STREQUAL "c++")
     SET(_compilerExecutable "${CMAKE_CXX_COMPILER}")
-  ELSE (${_lang} STREQUAL "c++")
+  ELSE ()
     SET(_compilerExecutable "${CMAKE_C_COMPILER}")
-  ENDIF (${_lang} STREQUAL "c++")
+  ENDIF ()
   EXECUTE_PROCESS(COMMAND ${_compilerExecutable} -v -E -x ${_lang} -dD dummy
                   WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles
                   ERROR_VARIABLE _gccOutput
@@ -54,7 +44,7 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines
       LIST(APPEND ${_resultIncludeDirs} "${_includePath}")
     ENDFOREACH(nextLine)
 
-  ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+ *\n) *End of (search) list" )
+  ENDIF()
 
 
   # now find the builtin macros:
@@ -90,39 +80,39 @@ SET(_orig_lc_messages $ENV{LC_MESSAGES})
 SET(_orig_lang        $ENV{LANG})
 IF(_orig_lc_all)
   SET(ENV{LC_ALL}      C)
-ENDIF(_orig_lc_all)
+ENDIF()
 IF(_orig_lc_messages)
   SET(ENV{LC_MESSAGES} C)
-ENDIF(_orig_lc_messages)
+ENDIF()
 IF(_orig_lang)
   SET(ENV{LANG}        C)
-ENDIF(_orig_lang)
+ENDIF()
 
 # Now check for C, works for gcc and Intel compiler at least
-IF (NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
+IF (NOT CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS)
   IF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_C_COMPILER_ID}" MATCHES Intel)
     _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c _dirs _defines)
-    SET(CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
-    SET(CMAKE_ECLIPSE_C_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "C compiler system defined macros")
-  ENDIF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_C_COMPILER_ID}" MATCHES Intel)
-ENDIF (NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
+    SET(CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
+    SET(CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "C compiler system defined macros")
+  ENDIF ()
+ENDIF ()
 
 # And now the same for C++
-IF (NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
+IF (NOT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS)
   IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_CXX_COMPILER_ID}" MATCHES Intel)
     _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c++ _dirs _defines)
-    SET(CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
-    SET(CMAKE_ECLIPSE_CXX_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "CXX compiler system defined macros")
-  ENDIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_CXX_COMPILER_ID}" MATCHES Intel)
-ENDIF (NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
+    SET(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
+    SET(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "CXX compiler system defined macros")
+  ENDIF ()
+ENDIF ()
 
 # Restore original LC_ALL, LC_MESSAGES, and LANG
 IF(_orig_lc_all)
   SET(ENV{LC_ALL}      ${_orig_lc_all})
-ENDIF(_orig_lc_all)
+ENDIF()
 IF(_orig_lc_messages)
   SET(ENV{LC_MESSAGES} ${_orig_lc_messages})
-ENDIF(_orig_lc_messages)
+ENDIF()
 IF(_orig_lang)
   SET(ENV{LANG}        ${_orig_lang})
-ENDIF(_orig_lang)
+ENDIF()
diff --git a/Modules/CMakeFindCodeBlocks.cmake b/Modules/CMakeFindCodeBlocks.cmake
index c72c8f7..23f2c82 100644
--- a/Modules/CMakeFindCodeBlocks.cmake
+++ b/Modules/CMakeFindCodeBlocks.cmake
@@ -21,3 +21,5 @@ IF(CMAKE_CODEBLOCKS_EXECUTABLE)
    SET(CMAKE_OPEN_PROJECT_COMMAND "${CMAKE_CODEBLOCKS_EXECUTABLE} <PROJECT_FILE>" )
 ENDIF(CMAKE_CODEBLOCKS_EXECUTABLE)
 
+# Determine builtin macros and include dirs:
+INCLUDE(${CMAKE_CURRENT_LIST_DIR}/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)
diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake
index a756e64..2f71cb9 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeFindEclipseCDT4.cmake
@@ -24,105 +24,5 @@ SET(CMAKE_ECLIPSE_MAKE_ARGUMENTS "" CACHE STRING "Additional command line argume
 SET(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT FALSE CACHE BOOL "If enabled, CMake will generate a source project for Eclipse in CMAKE_SOURCE_DIR")
 MARK_AS_ADVANCED(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT)
 
-# The Eclipse generator needs to know the standard include path
-# so that Eclipse ca find the headers at runtime and parsing etc. works better
-# This is done here by actually running gcc with the options so it prints its
-# system include directories, which are parsed then and stored in the cache.
-MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines)
-  SET(${_resultIncludeDirs})
-  SET(_gccOutput)
-  FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n" )
-
-  IF (${_lang} STREQUAL "c++")
-    SET(_compilerExecutable "${CMAKE_CXX_COMPILER}")
-  ELSE (${_lang} STREQUAL "c++")
-    SET(_compilerExecutable "${CMAKE_C_COMPILER}")
-  ENDIF (${_lang} STREQUAL "c++")
-  EXECUTE_PROCESS(COMMAND ${_compilerExecutable} -v -E -x ${_lang} -dD dummy
-                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles
-                  ERROR_VARIABLE _gccOutput
-                  OUTPUT_VARIABLE _gccStdout )
-  FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
-
-  # First find the system include dirs:
-  IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+ *\n) *End of (search) list" )
-
-    # split the output into lines and then remove leading and trailing spaces from each of them:
-    STRING(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
-    FOREACH(nextLine ${_includeLines})
-      STRING(STRIP "${nextLine}" _includePath)
-      LIST(APPEND ${_resultIncludeDirs} "${_includePath}")
-    ENDFOREACH(nextLine)
-
-  ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+ *\n) *End of (search) list" )
-
-
-  # now find the builtin macros:
-  STRING(REGEX MATCHALL "#define[^\n]+\n" _defineLines "${_gccStdout}")
-# A few example lines which the regexp below has to match properly:
-#  #define   MAX(a,b) ((a) > (b) ? (a) : (b))
-#  #define __fastcall __attribute__((__fastcall__))
-#  #define   FOO (23)
-#  #define __UINTMAX_TYPE__ long long unsigned int
-#  #define __UINTMAX_TYPE__ long long unsigned int
-#  #define __i386__  1
-
-  FOREACH(nextLine ${_defineLines})
-    STRING(REGEX MATCH "^#define +([A-Za-z_][A-Za-z0-9_]*)(\\([^\\)]+\\))? +(.+) *$" _dummy "${nextLine}")
-    SET(_name "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
-    STRING(STRIP "${CMAKE_MATCH_3}" _value)
-    #MESSAGE(STATUS "m1: -${CMAKE_MATCH_1}- m2: -${CMAKE_MATCH_2}- m3: -${CMAKE_MATCH_3}-")
-
-    LIST(APPEND ${_resultDefines} "${_name}")
-    IF(_value)
-      LIST(APPEND ${_resultDefines} "${_value}")
-    ELSE()
-      LIST(APPEND ${_resultDefines} " ")
-    ENDIF()
-  ENDFOREACH(nextLine)
-
-ENDMACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang)
-
-# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
-# to "C" that way GCC's "search starts here" text is in English and we can grok it.
-SET(_orig_lc_all      $ENV{LC_ALL})
-SET(_orig_lc_messages $ENV{LC_MESSAGES})
-SET(_orig_lang        $ENV{LANG})
-IF(_orig_lc_all)
-  SET(ENV{LC_ALL}      C)
-ENDIF(_orig_lc_all)
-IF(_orig_lc_messages)
-  SET(ENV{LC_MESSAGES} C)
-ENDIF(_orig_lc_messages)
-IF(_orig_lang)
-  SET(ENV{LANG}        C)
-ENDIF(_orig_lang)
-
-# Now check for C, works for gcc and Intel compiler at least
-IF (NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
-  IF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_C_COMPILER_ID}" MATCHES Intel)
-    _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c _dirs _defines)
-    SET(CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
-    SET(CMAKE_ECLIPSE_C_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "C compiler system defined macros")
-  ENDIF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_C_COMPILER_ID}" MATCHES Intel)
-ENDIF (NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
-
-# And now the same for C++
-IF (NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
-  IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_CXX_COMPILER_ID}" MATCHES Intel)
-    _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c++ _dirs _defines)
-    SET(CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
-    SET(CMAKE_ECLIPSE_CXX_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "CXX compiler system defined macros")
-  ENDIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU  OR  "${CMAKE_CXX_COMPILER_ID}" MATCHES Intel)
-ENDIF (NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
-
-# Restore original LC_ALL, LC_MESSAGES, and LANG
-IF(_orig_lc_all)
-  SET(ENV{LC_ALL}      ${_orig_lc_all})
-ENDIF(_orig_lc_all)
-IF(_orig_lc_messages)
-  SET(ENV{LC_MESSAGES} ${_orig_lc_messages})
-ENDIF(_orig_lc_messages)
-IF(_orig_lang)
-  SET(ENV{LANG}        ${_orig_lang})
-ENDIF(_orig_lang)
+# Determine builtin macros and include dirs:
+INCLUDE(${CMAKE_CURRENT_LIST_DIR}/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)
diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index 7db91c7..c7fe8f9 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -590,14 +590,52 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
       }
 
       // the include directories for this target
+      std::set<std::string> uniqIncludeDirs;
       const std::vector<std::string>& incDirs =
           target->GetMakefile()->GetIncludeDirectories();
       for(std::vector<std::string>::const_iterator dirIt=incDirs.begin();
           dirIt != incDirs.end();
           ++dirIt)
         {
+        uniqIncludeDirs.insert(*dirIt);
+        }
+
+
+      std::string systemIncludeDirs = makefile->GetSafeDefinition(
+                                "CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS");
+      if (!systemIncludeDirs.empty())
+        {
+        std::vector<std::string> dirs;
+        cmSystemTools::ExpandListArgument(systemIncludeDirs.c_str(), dirs);
+        for(std::vector<std::string>::const_iterator dirIt=dirs.begin();
+            dirIt != dirs.end();
+            ++dirIt)
+          {
+          uniqIncludeDirs.insert(*dirIt);
+          }
+        }
+
+      systemIncludeDirs = makefile->GetSafeDefinition(
+                              "CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS");
+      if (!systemIncludeDirs.empty())
+        {
+        std::vector<std::string> dirs;
+        cmSystemTools::ExpandListArgument(systemIncludeDirs.c_str(), dirs);
+        for(std::vector<std::string>::const_iterator dirIt=dirs.begin();
+            dirIt != dirs.end();
+            ++dirIt)
+          {
+          uniqIncludeDirs.insert(*dirIt);
+          }
+        }
+
+      for(std::set<std::string>::const_iterator dirIt=uniqIncludeDirs.begin();
+          dirIt != uniqIncludeDirs.end();
+          ++dirIt)
+        {
         fout <<"            <Add directory=\"" << dirIt->c_str() << "\" />\n";
         }
+
       fout<<"         </Compiler>\n";
       }
     else // e.g. all and the GLOBAL and UTILITY targets
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index f6960ff..1dd9bf3 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -654,7 +654,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
       }
     }
   // add system defined c macros
-  const char* cDefs=mf->GetDefinition("CMAKE_ECLIPSE_C_SYSTEM_DEFINED_MACROS");
+  const char* cDefs=mf->GetDefinition(
+                              "CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS");
   if(cDefs)
     {
     // Expand the list.
@@ -689,7 +690,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
     }
   // add system defined c++ macros
   const char* cxxDefs = mf->GetDefinition(
-                                    "CMAKE_ECLIPSE_CXX_SYSTEM_DEFINED_MACROS");
+                            "CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS");
   if(cxxDefs)
     {
     // Expand the list.
@@ -741,7 +742,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
   if (!compiler.empty())
     {
     std::string systemIncludeDirs = mf->GetSafeDefinition(
-                                      "CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS");
+                                "CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS");
     std::vector<std::string> dirs;
     cmSystemTools::ExpandListArgument(systemIncludeDirs.c_str(), dirs);
     this->AppendIncludeDirectories(fout, dirs, emmited);
@@ -750,7 +751,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
   if (!compiler.empty())
     {
     std::string systemIncludeDirs = mf->GetSafeDefinition(
-                                      "CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS");
+                              "CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS");
     std::vector<std::string> dirs;
     cmSystemTools::ExpandListArgument(systemIncludeDirs.c_str(), dirs);
     this->AppendIncludeDirectories(fout, dirs, emmited);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92c0dc50fc73dd9866f48c521b0aff7473eb3a59
commit 92c0dc50fc73dd9866f48c521b0aff7473eb3a59
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Tue Aug 2 01:05:24 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Tue Aug 2 01:05:24 2011 +0200

    Remove useless line of code
    
    Alex

diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 8e26b8e..f6960ff 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -737,7 +737,6 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
   // now also the system include directories, in case we found them in
   // CMakeSystemSpecificInformation.cmake. This makes Eclipse find the
   // standard headers.
-  mf->GetDefinition("CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS");
   std::string compiler = mf->GetSafeDefinition("CMAKE_C_COMPILER");
   if (!compiler.empty())
     {

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a5683f80bdc1c8c78d8db47f5695e0be3cc19afe
commit a5683f80bdc1c8c78d8db47f5695e0be3cc19afe
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Fri Jul 29 23:51:31 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Fri Jul 29 23:51:31 2011 +0200

    Patch by Campbell Barton: puts definitions into C::B project file
    
    This enables Codeblocks and QtCreator to do proper highlighting based
    on defined macros.
    
    Alex

diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index 4f93067..7db91c7 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -573,6 +573,22 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
           "         <Option type=\"" << cbTargetType << "\" />\n"
           "         <Option compiler=\"" << compiler << "\" />\n"
           "         <Compiler>\n";
+
+    // the compilerdefines for this target
+    const char* cdefs = target->GetMakefile()->GetProperty(
+                                                        "COMPILE_DEFINITIONS");
+    if(cdefs)
+      {
+      // Expand the list.
+      std::vector<std::string> defs;
+      cmSystemTools::ExpandListArgument(cdefs, defs);
+      for(std::vector<std::string>::const_iterator di = defs.begin();
+          di != defs.end(); ++di)
+        {
+        fout <<"            <Add option=\"-D" << di->c_str() << "\" />\n";
+        }
+      }
+
       // the include directories for this target
       const std::vector<std::string>& incDirs =
           target->GetMakefile()->GetIncludeDirectories();

-----------------------------------------------------------------------

Summary of changes:
 ...torDetermineCompilerMacrosAndIncludeDirs.cmake} |   54 ++++------
 Modules/CMakeFindCodeBlocks.cmake                  |    2 +
 Modules/CMakeFindEclipseCDT4.cmake                 |  104 +-------------------
 Source/cmExtraCodeBlocksGenerator.cxx              |   54 ++++++++++
 Source/cmExtraEclipseCDT4Generator.cxx             |   10 +-
 5 files changed, 85 insertions(+), 139 deletions(-)
 copy Modules/{CMakeFindEclipseCDT4.cmake => CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake} (65%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list