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
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake