Diff of /CMakeLists.txt [000000] .. [5d12a0]

Switch to unified view

a b/CMakeLists.txt
1
cmake_minimum_required(VERSION 3.16.3...3.26)
2
3
project(ants LANGUAGES CXX)
4
5
# Set the macOS SDK root
6
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
7
    execute_process(
8
        COMMAND xcrun --show-sdk-path
9
        OUTPUT_VARIABLE SDK_PATH
10
        OUTPUT_STRIP_TRAILING_WHITESPACE
11
    )
12
    set(CMAKE_OSX_SYSROOT ${SDK_PATH})
13
    message(STATUS "Using macOS SDK: ${CMAKE_OSX_SYSROOT}")
14
endif()
15
16
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
17
18
# Try to import all Python components potentially needed by nanobind
19
find_package(Python 3.8
20
  REQUIRED COMPONENTS Interpreter Development.Module)
21
22
# Import nanobind through CMake's find_package mechanism
23
find_package(nanobind CONFIG REQUIRED)
24
25
# TODO: make this run only if ITK + ANTs are not already built
26
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
27
  execute_process(COMMAND cmd /c ${PROJECT_SOURCE_DIR}/scripts/configure_ITK.bat)
28
  execute_process(COMMAND cmd /c ${PROJECT_SOURCE_DIR}/scripts/configure_ANTs.bat)
29
else()
30
  execute_process(COMMAND bash ${PROJECT_SOURCE_DIR}/scripts/configure_ITK.sh)
31
  execute_process(COMMAND bash ${PROJECT_SOURCE_DIR}/scripts/configure_ANTs.sh)
32
endif()
33
34
# ITK
35
set(ITK_DIR "./itkbuild")
36
find_package(ITK REQUIRED)
37
include(${ITK_USE_FILE})
38
39
# ANTS
40
add_library(antsUtilities STATIC src/antscore/antsUtilities.cxx src/antscore/antsCommandLineOption.cxx src/antscore/antsCommandLineParser.cxx src/antscore/ReadWriteData.cxx src/antscore/ANTsVersion.cxx)
41
add_library(registrationUtilities STATIC  src/antscore/antsRegistrationTemplateHeader.cxx
42
                                          src/antscore/antsRegistration2DDouble.cxx src/antscore/antsRegistration2DFloat.cxx
43
                                          src/antscore/antsRegistration3DDouble.cxx src/antscore/antsRegistration3DFloat.cxx
44
                                          src/antscore/antsRegistration4DDouble.cxx src/antscore/antsRegistration4DFloat.cxx)
45
46
47
add_library(imageMathUtilities STATIC  src/antscore/ImageMathHelper2D.cxx src/antscore/ImageMathHelper3D.cxx src/antscore/ImageMathHelper4D.cxx)
48
49
# this may not be needed
50
target_link_libraries(antsUtilities ${ITK_LIBRARIES})
51
target_link_libraries(registrationUtilities ${ITK_LIBRARIES})
52
target_link_libraries(imageMathUtilities ${ITK_LIBRARIES})
53
54
nanobind_add_module(
55
  lib
56
  NB_STATIC
57
  src/main.cpp
58
  src/antscore/antsAffineInitializer.cxx
59
  src/antscore/antsApplyTransforms.cxx
60
  src/antscore/antsApplyTransformsToPoints.cxx
61
  src/antscore/antsJointFusion.cxx
62
  src/antscore/antsRegistration.cxx
63
  src/antscore/Atropos.cxx
64
  src/antscore/AverageAffineTransform.cxx
65
  src/antscore/AverageAffineTransformNoRigid.cxx
66
  src/antscore/CreateJacobianDeterminantImage.cxx
67
  src/antscore/DenoiseImage.cxx
68
  src/antscore/iMath.cxx
69
  src/antscore/KellyKapowski.cxx
70
  src/antscore/LabelClustersUniquely.cxx
71
  src/antscore/LabelGeometryMeasures.cxx
72
  src/antscore/N3BiasFieldCorrection.cxx
73
  src/antscore/N4BiasFieldCorrection.cxx
74
  src/antscore/ResampleImage.cxx
75
  src/antscore/ThresholdImage.cxx
76
  src/antscore/TileImages.cxx
77
)
78
target_compile_options(lib PRIVATE -O3)
79
target_link_libraries(lib PRIVATE ${ITK_LIBRARIES} antsUtilities registrationUtilities imageMathUtilities)
80
81
# Install directive for scikit-build-core
82
install(TARGETS lib LIBRARY DESTINATION ants)