[CMake] Questions on CMAKE_CONFIGURATION_TYPES

Michael Schildt michael.schildt at ifn-magdeburg.de
Thu Mar 25 07:51:20 EDT 2010


>
> 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?

Bye.


More information about the CMake mailing list