rawTherapee/rtengine/CMakeLists.txt
2024-04-10 10:17:42 +00:00

257 lines
6.0 KiB
CMake

if(EXTRA_INCDIR)
include_directories("${EXTRA_INCDIR}")
endif()
if(EXPAT_INCLUDE_DIRS)
include_directories("${EXPAT_INCLUDE_DIRS}")
endif()
if(FFTW3F_INCLUDE_DIRS)
include_directories("${FFTW3F_INCLUDE_DIRS}")
endif()
if(GLIB2_INCLUDE_DIRS)
include_directories("${GLIB2_INCLUDE_DIRS}")
endif()
if(GLIBMM_INCLUDE_DIRS)
include_directories("${GLIBMM_INCLUDE_DIRS}")
endif()
if(GOBJECT_INCLUDE_DIRS)
include_directories("${GOBJECT_INCLUDE_DIRS}")
endif()
if(GTHREAD_INCLUDE_DIRS)
include_directories("${GTHREAD_INCLUDE_DIRS}")
endif()
if(GTKMM_INCLUDE_DIRS)
include_directories("${GTKMM_INCLUDE_DIRS}")
endif()
if(GTK_INCLUDE_DIRS)
include_directories("${GTK_INCLUDE_DIRS}")
endif()
if(IPTCDATA_INCLUDE_DIRS)
include_directories("${IPTCDATA_INCLUDE_DIRS}")
endif()
if(LCMS_INCLUDE_DIRS)
include_directories("${LCMS_INCLUDE_DIRS}")
endif()
if(LENSFUN_INCLUDE_DIRS)
include_directories("${LENSFUN_INCLUDE_DIRS}")
endif()
if(RSVG_INCLUDE_DIRS)
include_directories("${RSVG_INCLUDE_DIRS}")
endif()
if(NOT WITH_SYSTEM_KLT)
include_directories("${CMAKE_SOURCE_DIR}/rtengine/klt")
else()
include_directories("${KLT_INCLUDE_DIRS}")
endif()
if(EXIV2_INCLUDE_DIRS)
include_directories("${EXIV2_INCLUDE_DIRS}")
endif()
link_directories(
"${EXPAT_LIBRARY_DIRS}"
"${EXTRA_LIBDIR}"
"${FFTW3F_LIBRARY_DIRS}"
"${GLIB2_LIBRARY_DIRS}"
"${GLIBMM_LIBRARY_DIRS}"
"${GOBJECT_LIBRARY_DIRS}"
"${GTHREAD_LIBRARY_DIRS}"
"${IPTCDATA_LIBRARY_DIRS}"
"${LCMS_LIBRARY_DIRS}"
"${LENSFUN_LIBRARY_DIRS}"
"${RSVG_LIBRARY_DIRS}"
)
if(OpenMP_FOUND)
include_directories(${OpenMP_CXX_INCLUDE_DIRS})
endif()
set(CAMCONSTSFILE "camconst.json")
set(RTENGINESOURCEFILES
alpha.cc
ahd_demosaic_RT.cc
amaze_demosaic_RT.cc
badpixels.cc
bayer_bilinear_demosaic.cc
boxblur.cc
canon_cr3_decoder.cc
CA_correct_RT.cc
calc_distort.cc
camconst.cc
capturesharpening.cc
cfa_linedn_RT.cc
ciecam02.cc
cieimage.cc
cJSON.c
clutstore.cc
color.cc
colortemp.cc
coord.cc
cplx_wavelet_dec.cc
curves.cc
dcp.cc
dcraw.cc
dcrop.cc
demosaic_algos.cc
dfmanager.cc
diagonalcurves.cc
dirpyr_equalizer.cc
dual_demosaic_RT.cc
dynamicprofile.cc
eahd_demosaic.cc
EdgePreservingDecomposition.cc
fast_demo.cc
ffmanager.cc
filmnegativeproc.cc
flatcurves.cc
FTblockDN.cc
gamutwarning.cc
gauss.cc
green_equil_RT.cc
guidedfilter.cc
hilite_recon.cc
histmatching.cc
hphd_demosaic_RT.cc
iccjpeg.cc
iccstore.cc
iimage.cc
image16.cc
image8.cc
imagedata.cc
imagedimensions.cc
imagefloat.cc
imageio.cc
imagesource.cc
improccoordinator.cc
improcfun.cc
impulse_denoise.cc
init.cc
ipdehaze.cc
ipgrain.cc
iplab2rgb.cc
iplocallab.cc
iplabregions.cc
iplocalcontrast.cc
ipresize.cc
ipretinex.cc
ipshadowshighlights.cc
ipsharpen.cc
ipsharpenedges.cc
ipsoftlight.cc
iptoneequalizer.cc
iptransform.cc
ipvibrance.cc
ipwavelet.cc
jdatasrc.cc
jpeg_ijg/jpeg_memsrc.cc
labimage.cc
lcp.cc
lmmse_demosaic.cc
loadinitial.cc
metadata.cc
munselllch.cc
myfile.cc
panasonic_decoders.cc
pdaflinesfilter.cc
perspectivecorrection.cc
PF_correct_RT.cc
pipettebuffer.cc
pixelshift.cc
previewimage.cc
processingjob.cc
procparams.cc
profilestore.cc
rawflatfield.cc
rawimage.cc
rawimagesource.cc
rcd_demosaic.cc
refreshmap.cc
rt_algo.cc
rtlensfun.cc
rtthumbnail.cc
shmap.cc
simpleprocess.cc
spot.cc
stdimagesource.cc
tmo_fattal02.cc
utils.cc
vng4_demosaic_RT.cc
xtrans_demosaic.cc
)
if(LENSFUN_HAS_LOAD_DIRECTORY)
set_source_files_properties(rtlensfun.cc PROPERTIES COMPILE_DEFINITIONS RT_LENSFUN_HAS_LOAD_DIRECTORY)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0")
# procparams.cc takes a long time to compile with optimizations starting
# with GCC 12.1 due to PTA (see issue #6548)
get_source_file_property(PROCPARAMS_COMPILE_OPTIONS procparams.cc COMPILE_OPTIONS)
if(PROCPARAMS_COMPILE_OPTIONS STREQUAL "NOTFOUND")
set(PROCPARAMS_COMPILE_OPTIONS "")
else()
set(PROCPARAMS_COMPILE_OPTIONS "${PROCPARAMS_COMPILE_OPTIONS};")
endif()
set(PROCPARAMS_COMPILE_OPTIONS "${PROCPARAMS_COMPILE_OPTIONS}-fno-tree-pta")
set_source_files_properties(procparams.cc PROPERTIES COMPILE_OPTIONS ${PROCPARAMS_COMPILE_OPTIONS})
endif()
if(WITH_BENCHMARK)
add_definitions(-DBENCHMARK)
endif()
if(NOT WITH_SYSTEM_KLT)
set(RTENGINESOURCEFILES ${RTENGINESOURCEFILES}
klt/convolve.cc
klt/error.cc
klt/klt_util.cc
klt/klt.cc
klt/pnmio.cc
klt/pyramid.cc
klt/selectGoodFeatures.cc
klt/storeFeatures.cc
klt/trackFeatures.cc
klt/writeFeatures.cc
)
set(KLT_LIBRARIES)
endif()
include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}")
add_library(rtengine STATIC "${RTENGINESOURCEFILES}")
add_dependencies(rtengine UpdateInfo)
# It may be nice to store library version too
if(BUILD_SHARED_LIBS)
install(TARGETS rtengine DESTINATION "${LIBDIR}")
endif()
set_target_properties(rtengine PROPERTIES COMPILE_FLAGS "${RTENGINE_CXX_FLAGS}")
target_link_libraries(rtengine
${EXPAT_LIBRARIES}
${EXTRA_LIB}
${FFTW3F_LIBRARIES}
${GLIB2_LIBRARIES}
${GLIBMM_LIBRARIES}
${GOBJECT_LIBRARIES}
${GTHREAD_LIBRARIES}
${IPTCDATA_LIBRARIES}
${JPEG_LIBRARIES}
${LCMS_LIBRARIES}
${PNG_LIBRARIES}
${TIFF_LIBRARIES}
${ZLIB_LIBRARIES}
${LENSFUN_LIBRARIES}
${RSVG_LIBRARIES}
${KLT_LIBRARIES}
${EXIV2_LIBRARIES}
${JXL_LIBRARIES}
)
if(OpenMP_FOUND)
target_link_libraries(rtengine ${OpenMP_CXX_LIBRARIES})
endif()
install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)