[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