2022-07-07 07:11:51 -04:00
cmake_minimum_required ( VERSION 3.0 )
project ( discord-screenaudio )
2022-07-28 11:34:54 -04:00
include ( version.cmake )
determine_version ( "${CMAKE_CURRENT_SOURCE_DIR}" DISCORD_SCEENAUDIO )
add_definitions ( -DDISCORD_SCEENAUDIO_VERSION_FULL= "${DISCORD_SCEENAUDIO_VERSION_FULL}" )
2022-07-07 07:11:51 -04:00
set ( CMAKE_CXX_STANDARD 17 )
set ( CMAKE_INCLUDE_CURRENT_DIR ON )
set ( CMAKE_AUTOMOC ON )
set ( CMAKE_AUTORCC ON )
2022-07-09 16:07:14 -04:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG" )
2022-07-28 12:23:26 -04:00
string ( TIMESTAMP TIMESTAMP %s )
2022-07-07 07:11:51 -04:00
# set(CMAKE_AUTOUIC ON)
2022-12-27 13:00:10 -05:00
find_package ( Qt5 COMPONENTS Widgets )
if ( Qt5_FOUND )
find_package ( Qt5 CONFIG REQUIRED COMPONENTS Widgets WebEngineWidgets )
2022-07-07 07:11:51 -04:00
2022-12-27 13:00:10 -05:00
find_package ( KF5Notifications )
if ( KF5Notifications_FOUND )
add_definitions ( -DKNOTIFICATIONS )
endif ( )
2022-07-29 10:08:19 -04:00
2022-12-27 13:00:10 -05:00
find_package ( KF5XmlGui )
if ( KF5XmlGui_FOUND )
add_definitions ( -DKXMLGUI )
endif ( )
2022-10-10 15:50:26 -04:00
2022-12-27 13:00:10 -05:00
find_package ( KF5GlobalAccel )
if ( KF5GlobalAccel_FOUND )
add_definitions ( -DKGLOBALACCEL )
endif ( )
else ( )
message ( WARNING "Qt 5 was not found on your system and Qt 6 will be used. You will not be able to use any features using KDE Frameworks." )
find_package ( Qt6 CONFIG REQUIRED COMPONENTS Widgets WebEngineWidgets )
2022-10-10 15:50:26 -04:00
endif ( )
2022-07-07 07:11:51 -04:00
set ( discord-screenaudio_SRC
s r c / m a i n . c p p
s r c / m a i n w i n d o w . c p p
s r c / v i r t m i c . c p p
2022-07-09 16:07:14 -04:00
s r c / d i s c o r d p a g e . c p p
s r c / s t r e a m d i a l o g . c p p
2022-08-02 06:41:32 -04:00
s r c / l o g . c p p
2023-02-12 11:20:33 -05:00
s r c / u s e r s c r i p t . c p p
2023-02-17 10:20:29 -05:00
s r c / c e n t r a l w i d g e t . c p p
2023-04-27 12:52:28 -04:00
s r c / l o c a l s e r v e r . c p p
2022-07-07 07:11:51 -04:00
r e s o u r c e s . q r c
)
2022-07-26 10:33:34 -04:00
# Adapted from https://cliutils.gitlab.io/modern-cmake/chapters/projects/submodule.html
find_package ( Git QUIET )
if ( GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git" )
option ( GIT_SUBMODULE "Check submodules during build" ON )
if ( GIT_SUBMODULE )
message ( STATUS "Updating submodules" )
2022-07-26 10:53:13 -04:00
execute_process ( COMMAND ${ GIT_EXECUTABLE } submodule update --init --recursive --checkout
2022-07-26 10:33:34 -04:00
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R }
R E S U L T _ V A R I A B L E G I T _ S U B M O D _ R E S U L T )
if ( NOT GIT_SUBMOD_RESULT EQUAL "0" )
2022-07-26 10:53:13 -04:00
message ( FATAL_ERROR "`git submodule update --init --recursive --checkout` failed with ${GIT_SUBMOD_RESULT}, please provide the submodules manually" )
2022-07-26 10:33:34 -04:00
endif ( )
endif ( )
endif ( )
if ( NOT EXISTS "${PROJECT_SOURCE_DIR}/submodules/rohrkabel/CMakeLists.txt" )
message ( FATAL_ERROR "Rohrkabel was not found since you are not in a Git checkout or have GIT_SUBMODULE disabled. Please provide rohrkabel manually to `./submodules/rohrkabel`." )
endif ( )
add_subdirectory ( submodules/rohrkabel )
2022-07-07 07:11:51 -04:00
add_executable ( discord-screenaudio ${ discord-screenaudio_SRC } )
2022-12-27 13:00:10 -05:00
target_link_libraries ( discord-screenaudio Qt::Widgets Qt::WebEngineWidgets rohrkabel )
2022-07-29 10:31:04 -04:00
2022-08-29 08:23:00 -04:00
if ( KF5Notifications_FOUND )
2022-07-29 10:31:04 -04:00
target_link_libraries ( discord-screenaudio KF5::Notifications )
install ( FILES assets/discord-screenaudio.notifyrc DESTINATION ${ CMAKE_INSTALL_PREFIX } /share/knotifications5 )
endif ( )
2022-10-10 15:50:26 -04:00
if ( KF5XmlGui_FOUND )
target_link_libraries ( discord-screenaudio KF5::XmlGui )
endif ( )
if ( KF5GlobalAccel_FOUND )
target_link_libraries ( discord-screenaudio KF5::GlobalAccel )
endif ( )
2022-07-07 07:11:51 -04:00
install ( TARGETS discord-screenaudio DESTINATION bin )
2022-07-28 11:34:54 -04:00
install ( FILES assets/de.shorsh.discord-screenaudio.png DESTINATION ${ CMAKE_INSTALL_PREFIX } /share/icons/hicolor/256x256/apps )
2022-07-28 10:39:02 -04:00
install ( PROGRAMS assets/de.shorsh.discord-screenaudio.desktop DESTINATION ${ CMAKE_INSTALL_PREFIX } /share/applications )
2022-07-28 11:34:54 -04:00
configure_file ( assets/de.shorsh.discord-screenaudio.metainfo.xml.in de.shorsh.discord-screenaudio.metainfo.xml )
install ( FILES ${ CMAKE_BINARY_DIR } /de.shorsh.discord-screenaudio.metainfo.xml DESTINATION ${ CMAKE_INSTALL_PREFIX } /share/metainfo )