cmake_minimum_required (VERSION 3.15) project(Tenmon) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") find_package(Qt5 COMPONENTS Widgets Sql OpenGL REQUIRED) find_package(OpenCV REQUIRED) find_library(GSL_LIB gsl REQUIRED) find_library(GSLCBLAS_LIB gslcblas REQUIRED) find_library(EXIF_LIB exif REQUIRED) find_library(FITS_LIB cfitsio REQUIRED) find_library(RAW_LIB NAMES raw_r REQUIRED) set(TENMON_SRC about.cpp database.cpp databaseview.cpp filesystemwidget.cpp imageinfo.cpp imageringlist.cpp imagescrollarea.cpp imagescrollareagl.cpp loadrunable.cpp main.cpp mainwindow.cpp markedfiles.cpp rawimage.cpp starfit.cpp stfslider.cpp stretchtoolbar.cpp ) qt5_add_resources(TENMON_SRC resources.qrc) if(WIN32) list(APPEND TENMON_SRC icon.rc) add_compile_definitions("__PCL_WINDOWS") else() add_compile_definitions("__PCL_LINUX") endif() add_executable(tenmon WIN32 ${TENMON_SRC}) find_path(FITS_INCLUDE fitsio2.h PATH_SUFFIXES cfitsio REQUIRED) target_include_directories(tenmon PRIVATE ${OpenCV_INCLUDE_DIRS} ${FITS_INCLUDE} 3rdparty/include ${CMAKE_BINARY_DIR}) if(WIN32) target_link_directories(tenmon PRIVATE 3rdparty/lib/Windows) else() target_link_directories(tenmon PRIVATE 3rdparty/lib/Linux) endif() target_link_libraries(tenmon Qt5::Widgets Qt5::Sql ${OpenCV_LIBS} ${GSL_LIB} ${GSLCBLAS_LIB} ${EXIF_LIB} ${FITS_LIB} ${RAW_LIB}) target_link_libraries(tenmon PCL lcms lz4 RFC6234 zlib) if(LIBRAW_STATIC) add_compile_definitions("LIBRAW_NODLL") target_link_libraries(tenmon jasper) endif() install(TARGETS tenmon) if(UNIX) find_program(XDG-DESKTOP-MENU_EXECUTABLE xdg-desktop-menu) if(XDG-DESKTOP-MENU_EXECUTABLE) install(SCRIPT install.cmake) else() if(DEFINED ENV{FLATPAK_DEST}) install(FILES org.nou.tenmon.desktop DESTINATION "$ENV{FLATPAK_DEST}/share/applications") install(FILES org.nou.tenmon.png DESTINATION "$ENV{FLATPAK_DEST}/share/icons/hicolor/32x32/apps") else() install(FILES org.nou.tenmon.desktop DESTINATION "/usr/share/applications") install(FILES org.nou.tenmon.png DESTINATION "/usr/share/icons/hicolor/32x32/apps") endif() endif() endif(UNIX) option(RELEASE_BUILD "Release build" OFF) if(RELEASE_BUILD) add_custom_target(tenmon_version COMMAND ${CMAKE_COMMAND} -Dlocal_dir="${CMAKE_CURRENT_SOURCE_DIR}" -Doutput_dir="${CMAKE_CURRENT_BINARY_DIR}" -P "${CMAKE_CURRENT_SOURCE_DIR}/gitversion.cmake") add_dependencies(tenmon tenmon_version) else() execute_process(COMMAND ${CMAKE_COMMAND} -Dlocal_dir=${CMAKE_CURRENT_SOURCE_DIR} -Doutput_dir=${CMAKE_CURRENT_BINARY_DIR} -P "${CMAKE_CURRENT_SOURCE_DIR}/gitversion.cmake") endif()