chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Re: [CMake] Cygwin & MinGW static and dynamic libs won't


From: Brandon J. Van Every
Subject: [Chicken-users] Re: [CMake] Cygwin & MinGW static and dynamic libs won't coexist
Date: Thu, 03 Aug 2006 08:57:30 -0700
User-agent: Thunderbird 1.5.0.5 (Windows/20060719)

Brad King wrote:
Brandon J. Van Every wrote:

Cygwin expected nomenclature is:

cygwhatever-xxx.dll - dynamic link lib where -xxx is a version number
libwhatever.dll.a - import lib
libwhatever.a - static lib

MinGW expected nomenclature is:

libwhatever.dll - dynamic link lib
libwhatever.dll.a - import lib
libwhatever.a - static lib

I have a target "chicken-exe" which links against a dynamic library target "libchicken". I have a target "chicken-static" which links against a static library target "libchicken-static". The OUTPUT_NAME of chicken-exe, libchicken, and libchicken-static is "chicken". Prefixes are added by CMake. So for my problem, I expect there is a conflict regarding the root OUTPUT_NAME.

On Cygwin and MinGW CMake 2.4.3, if I type "make chicken-exe", it builds fine. It also produces libchicken.dll.a and deletes libchicken.a. If I type "make chicken-static", it builds fine. It also produces libchicken.a and deletes libchicken.dll.a. If I type "make," chicken-exe builds fine and chicken-static dies with an error:

In order to support projects that use the BUILD_SHARED_LIBS switch to change between static and shared libraries, the clean rule used to wipe out a target before it is linked removes source files with all possible names for the library. This is why one library is deleting the other.

I've just added a target property called CLEAN_DIRECT_OUTPUT that can be set on the two library targets to prevent them from deleting each other. See the documentation in SET_TARGET_PROPERTIES in the CVS version of CMake. We'll include this in 2.4.4.

Thanks!  Meanwhile I'm using symlinks as a workaround in 2.4.3.


Cheers,
Brandon Van Every




reply via email to

[Prev in Thread] Current Thread [Next in Thread]