Hi Bill,
For system libraries like this it is often better to just link them in
with -l. The compiler should be able to find them if it is installed
correctly. There is a good chance CMake will get it wrong. So, the
correct CMake solution for system/compiler libraries is to just use the
name of the library.
Something like this:
if(MINGW)
target_link_libraries(foo uuid ole32 shell32)
endif(MINGW)
I have a similar problem trying to link system libraries with MinGW.
Just add the library name will work, but then we get warnings because we
don't use absolute paths to libraries. Hardcoding the library name (to
the MinGW import libraries is not a good solution, if you want that it
should work "out of the box" for most users (e.g. if have MinGW versions
in C:\MinGW3.4.5 and C:\MinGW4.3.1). You could always set
CMAKE_LIBRARY_PATH, but since the MinGW directory looks like this:
...\MinGW\
bin <- gcc is in there
doc
lib <- import libraries
man
.....
one is able to get the lib library path from the CMAKE_C_COMPILER
variable (our library is in C, so this must be always set). So my
solution would be:
# We need the path to the MinGW compiler in order to find
# the import libraries for system libraries.
IF(MINGW)
get_filename_component(MINGWBINPATH ${CMAKE_C_COMPILER} PATH)
set(MINGWLIBPATH ${MINGWBINPATH}/../lib
CACHE FILEPATH
DOCSTRING "Path to MinGW import libraries")
ENDIF(MINGW)
and then
message(STATUS "Looking for gdi32 header and library")
find_library(GDI32_LIBRARY gdi32 HINTS ${MINGWLIBPATH})
We need the HINTS argument, otherwise cmake will find again gdi32.dll in
c:\windows\system32, since this path is in the PATH environment variable
- cmake will search there after HINTS paths but before PATHS paths.
I hope this helps others you have this problem.
Regards,
Werner
--
Dr. Werner Smekal
Institut fuer Allgemeine Physik
Technische Universitaet Wien
Wiedner Hauptstr 8-10
A-1040 Wien
Austria
email: [EMAIL PROTECTED]
web: http://www.iap.tuwien.ac.at/~smekal
phone: +43-(0)1-58801-13463 (office)
+43-(0)1-58801-13469 (laboratory)
fax: +43-(0)1-58801-13499
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake