You don't generally need to use link-directories - if you're using imported targets from a *Config.cmake file, the build type choice I would imagine is automatic (?), and if not you should be passing full paths to the library files in target_link_libraries, where you can specify using the debug, optimized, and general keywords.
Ryan On Thursday, March 25, 2010, Michael Schildt <michael.schi...@ifn-magdeburg.de> wrote: > > > On Thu, Mar 25, 2010 at 12:51 PM, Michael Schildt > <michael.schildt at ifn-magdeburg.de > <http://www.cmake.org/mailman/listinfo/cmake>> wrote: >>>/ > />>/ On Wed, Mar 24, 2010 at 2:10 PM, John Drescher <drescherjm at gmail.com > />>/ <http://www.cmake.org/mailman/listinfo/cmake>> wrote: > />>/ >/ On Wed, Mar 24, 2010 at 1:42 PM, Michael Schildt > />>/ />/ <michael.schildt at ifn-magdeburg.de > />>/ <http://www.cmake.org/mailman/listinfo/cmake>> wrote: > />>/ />>/ Hello, > />>/ />>/ > />>/ />>/ I use GDCM libaries in one project. Unfurtunally, i couldn't find a > />>/ findGDCM > />>/ />>/ module and i'm not experienced enough to write one. I have seen that > />>/ GDCM is > />>/ />>/ used in ITK, so there must be a module like this. GDCM is using > cmake > />>/ too, > />>/ />>/ so inclusion should be easy. But i have problems to link the correkt > />>/ library > />>/ />>/ version depending on the configuration type. > />>/ />>/ > />>/ />>/ IF(WIN32) > />>/ />>/ INCLUDE_DIRECTORIES(C:/Programme/GDCM\ 2.0/include/gdcm-2.0) > />>/ />>/ IF(CMAKE_BUILD_TYPE MATCHES "Debug") > />>/ />>/ LINK_DIRECTORIES("C:/Program Files/GDCM/bin/Debug") > />>/ />>/ ELSE(CMAKE_BUILD_TYPE MATCHES "Debug") > />>/ />>/ LINK_DIRECTORIES("C:/Program Files/GDCM/bin/Release") > />>/ />>/ ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug") > />>/ />>/ SET(GDCM_LIBRARIES gdcmcharls.lib gdcmCommon.lib gdcmDICT.lib > />>/ gdcmDSED.lib > />>/ />>/ gdcmexpat.lib gdcmgetopt.lib gdcmIOD.lib gdcmjpeg8.lib > gdcmjpeg12.lib > />>/ />>/ gdcmjpeg16.lib gdcmMSFF.lib gdcmopenjpeg.lib gdcmzlib.lib) > />>/ />>/ ELSE(WIN32) > />>/ />>/ # Linux > />>/ />>/ INCLUDE_DIRECTORIES(/usr/include/gdcm-2.0) > />>/ />>/ SET(GDCM_LIBRARIES gdcmCommon gdcmDICT gdcmDSED gdcmIOD gdcmjpeg8 > />>/ />>/ gdcmjpeg12 gdcmjpeg16 gdcmMSFF) > />>/ />>/ ENDIF(WIN32) > />>/ />>/ > />>/ />>/ He always includes the Relase Directory. What is a solution for this > />>/ issue? > />>/ />>/ > />>/ />/ > />>/ />/ Build GDCM from source and it will have the necessary finders. Do not > />>/ />/ INSTALL. Then the usual in your CMakeLists.txt file. Here is an > />>/ />/ example. > />>/ />/ > />>/ />/ CMakeLists.txt > />>/ />/ cmake_minimum_required(VERSION 2.6) > />>/ />/ > />>/ />/ PROJECT(GDCMImageViewer) > />>/ />/ > />>/ />/ FIND_PACKAGE(VTK REQUIRED) > />>/ />/ INCLUDE(${VTK_USE_FILE}) > />>/ />/ > />>/ />/ FIND_PACKAGE(GDCM REQUIRED) > />>/ />/ INCLUDE(${GDCM_USE_FILE}) > />>/ />/ > />>/ />/ INCLUDE_DIRECTORIES( > />>/ />/ ${GDCM_SOURCE_DIR}/Utilities/VTK > />>/ />/ ) > />>/ />/ > />>/ />/ IF(WIN32 AND NOT CYGWIN) > />>/ />/ ADD_SUBDIRECTORY(getopt) > />>/ />/ INCLUDE_DIRECTORIES(getopt) > />>/ />/ ENDIF(WIN32 AND NOT CYGWIN) > />>/ />/ > />>/ />/ ADD_EXECUTABLE(GDCMImageViewer gdcmviewer.cxx) > />>/ />/ TARGET_LINK_LIBRARIES(GDCMImageViewer vtkHybrid vtkInfovis > />>/ vtkWidgets > />>/ />/ vtkgdcm getopt) > />>/ />/ > />>/ />/ > />>/ / > />>/ BTW when cmake-gui complains it can not find GDCM point it to the > />>/ place where you built gdcm. Also make sure you build all > />>/ configurations of GDCM that you want in the same build tree. That is > />>/ why I said do not install. Since install will try to put the binaries > />>/ in the same folder and since they are named the same it will cause > />>/ problems. > />>/ > />>/ > />>/ John > />>/ > />/ > />/ Hi, > />/ > />/ thanks for the useful hints, cmake finds the package now. But > unfurtunally, > />/ it does not link the library and therefore i get a lot of unresolved > />/ dependency from gdcm. i replaced my stuff with > />/ > />/ FIND_PACKAGE(GDCM REQUIRED) > />/ INCLUDE(${GDCM_USE_FILE}) > />/ > />/ and tested the typical variables > />/ > />/ MESSAGE(STATUS "Cmake GDCM: using GDCM includes at: ${GDCM_INCLUDE_DIR}") > />/ MESSAGE(STATUS "Cmake GDCM: using GDCM libraries: ${GDCM_LIBRARIES}") > />/ MESSAGE(STATUS "Cmake GDCM: using GDCM libraries: ${GDCM_LIBRARY}") > />/ > />/ but the are all empty? How can i find out, what is defined by GDCM? > / > `cmake --help-module` parses system installed Find*.cmake file, > however it does not parse *Config.cmake file. You have to look into > GDCMConfig.cmake and such to understand. > > Anyway, there is no generic "GDCM_LIBRARIES", you have to specify > explicitely the name of the desired lib: > > add_executable(dummy dummy.cxx) > target_link_libraries(dummy gdcmMSFF) > > Cheers > -- > Mathieu > > > > Hello, > > i found GDCMconfig.cmake as you mentioned and the definitions there in are > GDCM_INCLUDE_DIRS and GDCM_LIBRARY_DIRS. But as in the former post i > specified the needed libraries manually. Thank you all for your help. > > FIND_PACKAGE(GDCM REQUIRED) > INCLUDE(${GDCM_USE_FILE}) > > SET(GDCM_LIBRARIES gdcmCommon gdcmDICT gdcmDSED gdcmIOD > gdcmjpeg8 gdcmjpeg12 gdcmjpeg16 gdcmMSFF > CACHE STRING "GDCM libraries") > > MESSAGE(STATUS "Cmake GDCM: using includes at: ${GDCM_INCLUDE_DIRS}") > MESSAGE(STATUS "Cmake GDCM: using libraries at: ${GDCM_LIBRARY_DIRS}") > MESSAGE(STATUS "Cmake GDCM: using libraries: ${GDCM_LIBRARYRIES}") > > TARGET_LINK_LIBRARIES(fileInfo ${GDCM_LIBRARIES}) > > But it is still unclear to me how to provide different link_directories for > Debug and Release used by MSVC 9.0 on Windows for external libraries not > using cmake . If i have release and debug libraries with different namens > (i.e. test1.lib and test1d.lib) i can use something like > > TARGET_LINK_LIBRARIES( Project1 debug test1d.lib optimized test1.lib) > > But what if i have i.e. Debug/test1.lib and Release/test1.lib? How do i > define configuration-type depended LINK_DIRECTORIES? > > Best reguards, > Michael > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > -- Ryan Pavlik HCI Graduate Student Virtual Reality Applications Center Iowa State University rpav...@iastate.edu http://academic.cleardefinition.com Internal VRAC/HCI Site: http://tinyurl.com/rpavlik _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake