cmake_minimum_required(VERSION 3.10) project(DoseCompare LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) # Defaults matching local Manteia Toolkits (tomoViewer) if(NOT DEFINED Qt5_DIR AND EXISTS "D:/Qt/Qt5.9.4/5.9.4/msvc2017_64/lib/cmake/Qt5") set(Qt5_DIR "D:/Qt/Qt5.9.4/5.9.4/msvc2017_64/lib/cmake/Qt5" CACHE PATH "") endif() if(NOT DEFINED ITK_DIR AND EXISTS "C:/Toolkits/ITK/lib/cmake/ITK-4.13") set(ITK_DIR "C:/Toolkits/ITK/lib/cmake/ITK-4.13" CACHE PATH "") endif() if(NOT DEFINED VTK_DIR AND EXISTS "C:/Toolkits/VTK/lib/cmake/vtk-8.1") set(VTK_DIR "C:/Toolkits/VTK/lib/cmake/vtk-8.1" CACHE PATH "") endif() find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets) find_package(ITK REQUIRED) include(${ITK_USE_FILE}) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) if("${VTK_QT_VERSION}" STREQUAL "") message(FATAL_ERROR "VTK was not built with Qt support") endif() set(SOURCES src/main.cpp src/MainWindow.cpp src/DoseImage.cpp src/ImageManager.cpp src/SliceViewWidget.cpp src/ProfilePlotWidget.cpp src/ImageListPanel.cpp resources/resources.qrc ) set(HEADERS src/types.h src/MainWindow.h src/DoseImage.h src/ImageManager.h src/SliceViewWidget.h src/ProfilePlotWidget.h src/ImageListPanel.h ) if(WIN32) set(APP_ICON_RC "${CMAKE_CURRENT_SOURCE_DIR}/resources/app.rc") set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} /I \"${CMAKE_CURRENT_SOURCE_DIR}/resources\"") endif() add_executable(DoseCompare ${SOURCES} ${HEADERS} ${APP_ICON_RC}) target_include_directories(DoseCompare PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) target_link_libraries(DoseCompare PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets ${ITK_LIBRARIES} ${VTK_LIBRARIES} ) add_executable(smoke_slice_test src/smoke_slice_test.cpp src/DoseImage.cpp) target_include_directories(smoke_slice_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) target_link_libraries(smoke_slice_test PRIVATE Qt5::Core Qt5::Gui ${ITK_LIBRARIES}) if(MSVC) target_compile_options(DoseCompare PRIVATE /utf-8 /W3 /EHsc) target_compile_definitions(DoseCompare PRIVATE _CRT_SECURE_NO_WARNINGS) target_compile_options(smoke_slice_test PRIVATE /utf-8 /W3 /EHsc) target_compile_definitions(smoke_slice_test PRIVATE _CRT_SECURE_NO_WARNINGS) endif()