CMakeでDCMTKを使う:FindDCMTKモジュールとその他の方法


CMake の "Modules" における "FindDCMTK" は、DCMTK(DICOM Toolkit)ライブラリを CMake プロジェクトに統合するためのモジュールです。このモジュールは、DCMTK のインストールディレクトリを自動的に検出し、必要なライブラリとヘッダーファイルをプロジェクトにリンクできるようにします。

使い方

FindDCMTK モジュールを使用するには、以下の手順を実行する必要があります。

  1. CMakeLists.txt ファイルに FindDCMTK モジュールを呼び出す
find_package(DCMTK REQUIRED)
  1. DCMTK ライブラリとヘッダーファイルを使用する
target_link_libraries(my_target DCMTK::dcmdata DCMTK::dcmjpeg DCMTK::libm)
target_include_directories(my_target PUBLIC ${DCMTK_INCLUDE_DIRS})

オプション

FindDCMTK モジュールは、いくつかのオプションを提供しています。これらのオプションを使用して、DCMTK の特定のバージョンを指定したり、DCMTK モジュールの特定の機能を無効にしたりすることができます。

オプションの詳細については、 を参照してください。

以下の例は、DCMTK モジュールを使用して DCMTK ライブラリとヘッダーファイルをプロジェクトにリンクする方法を示しています。

cmake_minimum_required(VERSION 3.10)

project(my_project)

find_package(DCMTK REQUIRED)

target_link_libraries(my_target DCMTK::dcmdata DCMTK::dcmjpeg DCMTK::libm)
target_include_directories(my_target PUBLIC ${DCMTK_INCLUDE_DIRS})

add_executable(my_program my_source.cpp)

この例では、FindDCMTK モジュールは DCMTK の最新バージョンを自動的に検出し、DCMTK ライブラリとヘッダーファイルをプロジェクトにリンクします。

  • FindDCMTK モジュールは、CMake 3.10 以降が必要です。
  • FindDCMTK モジュールは、DCMTK がインストールされていることを前提としています。DCMTK がインストールされていない場合は、手動でインストールする必要があります。


cmake_minimum_required(VERSION 3.10)

project(my_project)

find_package(DCMTK REQUIRED)

target_link_libraries(my_target DCMTK::dcmdata DCMTK::dcmjpeg DCMTK::libm)
target_include_directories(my_target PUBLIC ${DCMTK_INCLUDE_DIRS})

add_executable(my_program my_source.cpp)

例 2: DCMTK の特定のバージョンを指定する

cmake_minimum_required(VERSION 3.10)

project(my_project)

find_package(DCMTK REQUIRED VERSION 3.18.1)

target_link_libraries(my_target DCMTK::dcmdata DCMTK::dcmjpeg DCMTK::libm)
target_include_directories(my_target PUBLIC ${DCMTK_INCLUDE_DIRS})

add_executable(my_program my_source.cpp)

例 3: DCMTK モジュールの特定の機能を無効にする

cmake_minimum_required(VERSION 3.10)

project(my_project)

find_package(DCMTK REQUIRED COMPONENTS dcmdata dcmjpeg)

target_link_libraries(my_target DCMTK::dcmdata DCMTK::dcmjpeg DCMTK::libm)
target_include_directories(my_target PUBLIC ${DCMTK_INCLUDE_DIRS})

add_executable(my_program my_source.cpp)


FindDCMTK モジュールは、DCMTK を CMake プロジェクトに統合するための便利なツールですが、必ずしも必要ではありません。DCMTK をプロジェクトに統合するには、以下の方法も使用できます。

手動で DCMTK ライブラリとヘッダーファイルをプロジェクトに追加する

cmake_minimum_required(VERSION 3.10)

project(my_project)

set(DCMTK_DIR "/path/to/dcmtk/install/directory")

target_link_libraries(my_target ${DCMTK_DIR}/lib/dcmtk.lib ${DCMTK_DIR}/lib/dcmtkdata.lib ${DCMTK_DIR}/lib/dcmtkjpeg.lib ${DCMTK_DIR}/lib/dcmtkm.lib)
target_include_directories(my_target PUBLIC ${DCMTK_DIR}/include)

add_executable(my_program my_source.cpp)

CMake の ExternalProject モジュールを使用して DCMTK をビルドしてインストールする

cmake_minimum_required(VERSION 3.10)

project(my_project)

externalproject_add(dcmtk
    SOURCE_DIR "/path/to/dcmtk/source/directory"
    UPDATE_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/dcmtk/CMakeLists.txt
    BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/dcmtk ${CMAKE_INSTALL_COMMAND}
    INSTALL_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/dcmtk/install/cmake/dcmtk-install.cmake
)

target_link_libraries(my_target dcmtk)
target_include_directories(my_target PUBLIC dcmtk)

add_executable(my_program my_source.cpp)

これらの方法は、FindDCMTK モジュールよりも柔軟性と制御性が高くなりますが、より複雑でもあります。