62 lines
1.6 KiB
CMake
62 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(screencapture VERSION 0.1 LANGUAGES CXX)
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(NOT DEFINED INSTALL_EXAMPLESDIR)
|
|
set(INSTALL_EXAMPLESDIR "examples")
|
|
endif()
|
|
|
|
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/multimedia/screencapture")
|
|
|
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS MultimediaWidgets Widgets)
|
|
|
|
set(PROJECT_SOURCES
|
|
screencapture.pro
|
|
main.cpp
|
|
screencapturepreview.cpp
|
|
screencapturepreview.h
|
|
screenlistmodel.h
|
|
screenlistmodel.cpp
|
|
windowlistmodel.h
|
|
windowlistmodel.cpp
|
|
)
|
|
|
|
qt_add_executable(screencapture
|
|
MANUAL_FINALIZATION
|
|
${PROJECT_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(screencapture PRIVATE
|
|
Qt${QT_VERSION_MAJOR}::Core
|
|
Qt${QT_VERSION_MAJOR}::Gui
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
Qt${QT_VERSION_MAJOR}::Multimedia
|
|
Qt${QT_VERSION_MAJOR}::MultimediaWidgets)
|
|
|
|
set_target_properties(screencapture PROPERTIES
|
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
|
|
MACOSX_BUNDLE TRUE
|
|
WIN32_EXECUTABLE TRUE
|
|
QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android
|
|
)
|
|
|
|
qt_add_ios_ffmpeg_libraries(screencapture)
|
|
|
|
install(TARGETS screencapture
|
|
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
|
|
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
|
|
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
|
|
)
|
|
|
|
qt_finalize_executable(screencapture)
|