Browse Source

ENH: Fix ADD_DEPENDENCIES on Unix makefiles and fix SimpleInstall test not to link the module

Andy Cedilnik 22 years ago
parent
commit
59adb4eabe

+ 10 - 1
Source/cmLocalUnixMakefileGenerator.cxx

@@ -1603,7 +1603,16 @@ void cmLocalUnixMakefileGenerator::OutputDependLibs(std::ostream& fout)
         if(emitted.insert(*util).second)
         if(emitted.insert(*util).second)
           {
           {
           // Output this dependency.
           // Output this dependency.
-          this->OutputExeDepend(fout, util->c_str());
+          std::string utilType = *util + "_LIBRARY_TYPE";
+          const char* libType = m_Makefile->GetDefinition(utilType.c_str());
+          if ( libType )
+            {
+            this->OutputLibDepend(fout, util->c_str());
+            }
+          else
+            {
+            this->OutputExeDepend(fout, util->c_str());
+            }
           }
           }
         }
         }
       fout << "\n";
       fout << "\n";

+ 3 - 1
Tests/SimpleInstall/CMakeLists.txt

@@ -9,7 +9,9 @@ ADD_LIBRARY(test1 STATIC lib1.cxx)
 ADD_LIBRARY(test2 SHARED lib2.cxx)
 ADD_LIBRARY(test2 SHARED lib2.cxx)
 ADD_LIBRARY(test3 MODULE lib3.cxx)
 ADD_LIBRARY(test3 MODULE lib3.cxx)
 ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
 ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
-TARGET_LINK_LIBRARIES(SimpleInstall test1 test2 test3)
+TARGET_LINK_LIBRARIES(SimpleInstall test1 test2)
+
+ADD_DEPENDENCIES(SimpleInstall test3)
 
 
 INSTALL_TARGETS(/bin SimpleInstall)
 INSTALL_TARGETS(/bin SimpleInstall)
 INSTALL_TARGETS(/lib test1 test2 test3)
 INSTALL_TARGETS(/lib test1 test2 test3)

+ 3 - 1
Tests/SimpleInstallS2/CMakeLists.txt

@@ -9,7 +9,9 @@ ADD_LIBRARY(test1 STATIC lib1.cxx)
 ADD_LIBRARY(test2 SHARED lib2.cxx)
 ADD_LIBRARY(test2 SHARED lib2.cxx)
 ADD_LIBRARY(test3 MODULE lib3.cxx)
 ADD_LIBRARY(test3 MODULE lib3.cxx)
 ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
 ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
-TARGET_LINK_LIBRARIES(SimpleInstall test1 test2 test3)
+TARGET_LINK_LIBRARIES(SimpleInstall test1 test2)
+
+ADD_DEPENDENCIES(SimpleInstall test3)
 
 
 INSTALL_TARGETS(/bin SimpleInstall)
 INSTALL_TARGETS(/bin SimpleInstall)
 INSTALL_TARGETS(/lib test1 test2 test3)
 INSTALL_TARGETS(/lib test1 test2 test3)