FIX: fix bug 2043 borland compiler and dll problem and add a test for it

This commit is contained in:
Bill Hoffman 2005-07-14 12:21:49 -04:00
parent e8b10e1938
commit b7b35d2c5a
3 changed files with 21 additions and 11 deletions

View File

@ -1370,11 +1370,7 @@ cmLocalUnixMakefileGenerator3
// Build a list of compiler flags and linker flags. // Build a list of compiler flags and linker flags.
std::string flags; std::string flags;
std::string linkFlags; std::string linkFlags;
#if 0
// Add flags to create an executable.
this->AddConfigVariableFlags(linkFlags, "CMAKE_EXE_LINKER_FLAGS");
// Loop over all libraries and see if all are shared // Loop over all libraries and see if all are shared
const cmTarget::LinkLibraries& tlibs = target.GetLinkLibraries(); const cmTarget::LinkLibraries& tlibs = target.GetLinkLibraries();
int AllShared = 2; // 0 = false, 1 = true, 2 = unknown int AllShared = 2; // 0 = false, 1 = true, 2 = unknown
@ -1395,7 +1391,6 @@ cmLocalUnixMakefileGenerator3
} }
} }
} }
// if all libs were shared then add the special borland flag for linking an // if all libs were shared then add the special borland flag for linking an
// executable to only shared libs // executable to only shared libs
if(AllShared == 1) if(AllShared == 1)
@ -1403,6 +1398,17 @@ cmLocalUnixMakefileGenerator3
this->AppendFlags this->AppendFlags
(linkFlags,m_Makefile->GetDefinition("CMAKE_SHARED_BUILD_CXX_FLAGS")); (linkFlags,m_Makefile->GetDefinition("CMAKE_SHARED_BUILD_CXX_FLAGS"));
} }
#endif
// Add flags to deal with shared libraries. Any library being
// linked in might be shared, so always use shared flags for an
// executable.
this->AddSharedFlags(linkFlags, linkLanguage, true);
// Add flags to create an executable.
this->AddConfigVariableFlags(linkFlags, "CMAKE_EXE_LINKER_FLAGS");
if(target.GetPropertyAsBool("WIN32_EXECUTABLE")) if(target.GetPropertyAsBool("WIN32_EXECUTABLE"))
{ {
this->AppendFlags(linkFlags, this->AppendFlags(linkFlags,
@ -1417,11 +1423,6 @@ cmLocalUnixMakefileGenerator3
// Add language-specific flags. // Add language-specific flags.
this->AddLanguageFlags(flags, linkLanguage); this->AddLanguageFlags(flags, linkLanguage);
// Add flags to deal with shared libraries. Any library being
// linked in might be shared, so always use shared flags for an
// executable.
this->AddSharedFlags(flags, linkLanguage, true);
// Add target-specific linker flags. // Add target-specific linker flags.
this->AppendFlags(linkFlags, target.GetProperty("LINK_FLAGS")); this->AppendFlags(linkFlags, target.GetProperty("LINK_FLAGS"));

View File

@ -1,4 +1,7 @@
IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}") IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
SET(BUILD_SHARED_LIBS 1)
ADD_LIBRARY(testlib testlib.cxx)
ADD_EXECUTABLE (simple simple.cxx) ADD_EXECUTABLE (simple simple.cxx)
TARGET_LINK_LIBRARIES(simple testlib)
ENDIF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}") ENDIF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")

View File

@ -1,4 +1,10 @@
#include "testlib.h"
int main () int main ()
{ {
if(TestLib() != 1.0)
{
return -1;
}
return 0; return 0;
} }