cmake_minimum_required( VERSION 3.3 ) project( cprime ) set( PROJECT_VERSION 5.0.0 ) set( PROJECT_VERSION_MAJOR 5 ) set( PROJECT_VERSION_MINOR 0 ) set( PROJECT_VERSION_PATCH 0 ) set( PROJECT_VERSION_MAJOR_MINOR ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) add_compile_definitions(PROJECT_VERSION="${PROJECT_VERSION}") set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_INCLUDE_CURRENT_DIR ON ) set( CMAKE_BUILD_TYPE Release ) set( CMAKE_AUTOMOC ON ) set( CMAKE_AUTOUIC ON ) set( CMAKE_AUTORCC ON ) add_definitions ( -Wall ) if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) set( CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Location for installing the project" FORCE ) endif() find_package ( Qt6Widgets REQUIRED ) find_package ( Qt6Core REQUIRED ) find_package ( Qt6Gui REQUIRED ) find_package ( Qt6Network REQUIRED ) find_package ( Qt6DBus REQUIRED ) include_directories( cprime ) ###### CPrime Core set ( cprime-core_HDRS cprime/activitesmanage.h cprime/ccoreapplication.h cprime/cenums.h cprime/desktopfile.h cprime/filefunc.h cprime/sortfunc.h cprime/systemxdg.h cprime/messageengine.h cprime/variables.h ) set ( cprime-core_SRCS cprime/activitesmanage.cpp cprime/capplicationimpl.cpp cprime/ccoreapplication.cpp cprime/desktopfile.cpp cprime/filefunc.cpp cprime/sortfunc.cpp cprime/systemxdg.cpp cprime/messageengine.cpp cprime/variables.cpp ) add_library ( cprime-core-qt6 SHARED ${cprime-core_SRCS} ${cprime-core_HDRS} ) set_target_properties( cprime-core-qt6 PROPERTIES VERSION ${PROJECT_VERSION} ) set_target_properties( cprime-core-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION} ) set_target_properties( cprime-core-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR_MINOR} ) set_target_properties( cprime-core-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} ) target_link_libraries ( cprime-core-qt6 Qt6::Core Qt6::Network Qt6::DBus ) ###### CPrime Gui set ( cprime-gui_SRCS cprime/cguiapplication.cpp ) set ( cprime-gui_MOCS cprime/cguiapplication.h ) add_library ( cprime-gui-qt6 SHARED ${cprime-gui_SRCS} ${cprime-gui_MOCS} ) set_target_properties( cprime-gui-qt6 PROPERTIES VERSION ${PROJECT_VERSION} ) set_target_properties( cprime-gui-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION} ) set_target_properties( cprime-gui-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR_MINOR} ) set_target_properties( cprime-gui-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} ) target_link_libraries ( cprime-gui-qt6 Qt6::Core Qt6::Gui cprime-core-qt6 ) ###### CPrime Widgets set ( cprime-widgets_HDRS cprime/appopenfunc.h cprime/cprime.h cprime/pinmanage.h cprime/themefunc.h cprime/trashmanager.h cprime/capplication.h cprime/applicationdialog.h cprime/cplugininterface.h cprime/ioprocesses.h cprime/pinit.h cprime/shareit.h ) set ( cprime-widgets_SRCS cprime/capplication.cpp cprime/applicationdialog.cpp cprime/appopenfunc.cpp cprime/ioprocesses.cpp cprime/pinit.cpp cprime/pinmanage.cpp cprime/shareit.cpp cprime/themefunc.cpp cprime/trashmanager.cpp cprime/cplugininterface.cpp ) set ( cprime-widgets_UIS cprime/pinit.ui cprime/shareit.ui ) add_library ( cprime-widgets-qt6 SHARED ${cprime-widgets_SRCS} ${cprime-widgets_UIS} ${cprime-widgets_HDRS} ) set_target_properties( cprime-widgets-qt6 PROPERTIES VERSION ${PROJECT_VERSION} ) set_target_properties( cprime-widgets-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION} ) set_target_properties( cprime-widgets-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR_MINOR} ) set_target_properties( cprime-widgets-qt6 PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} ) target_link_libraries ( cprime-widgets-qt6 Qt6::Core Qt6::Gui Qt6::Widgets cprime-core-qt6 ) set( CPRIME_HEADERS cprime/activitesmanage.h cprime/capplication.h cprime/ccoreapplication.h cprime/cguiapplication.h cprime/applicationdialog.h cprime/appopenfunc.h cprime/cenums.h cprime/cplugininterface.h cprime/cprime.h cprime/desktopfile.h cprime/filefunc.h cprime/ioprocesses.h cprime/messageengine.h cprime/pinit.h cprime/pinmanage.h cprime/shareit.h cprime/sortfunc.h cprime/systemxdg.h cprime/themefunc.h cprime/trashmanager.h cprime/variables.h cprime/libcprime_global.h ) configure_file( pkgconfig/cprime-core.pc.in cprime-core-qt6.pc @ONLY ) configure_file( pkgconfig/cprime-gui.pc.in cprime-gui-qt6.pc @ONLY ) configure_file( pkgconfig/cprime-widgets.pc.in cprime-widgets-qt6.pc @ONLY ) install( TARGETS cprime-core-qt6 cprime-gui-qt6 cprime-widgets-qt6 EXPORT LIBRARY ) install( FILES ${CPRIME_HEADERS} DESTINATION include/cprime/ ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/cprime-core-qt6.pc ${CMAKE_CURRENT_BINARY_DIR}/cprime-gui-qt6.pc ${CMAKE_CURRENT_BINARY_DIR}/cprime-widgets-qt6.pc DESTINATION share/pkgconfig )