CMakeでDCMTKを使う:FindDCMTKモジュールとその他の方法
CMake の "Modules" における "FindDCMTK" は、DCMTK(DICOM Toolkit)ライブラリを CMake プロジェクトに統合するためのモジュールです。このモジュールは、DCMTK のインストールディレクトリを自動的に検出し、必要なライブラリとヘッダーファイルをプロジェクトにリンクできるようにします。
使い方
FindDCMTK モジュールを使用するには、以下の手順を実行する必要があります。
- CMakeLists.txt ファイルに FindDCMTK モジュールを呼び出す
find_package(DCMTK REQUIRED)
- 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 モジュールよりも柔軟性と制御性が高くなりますが、より複雑でもあります。