2020-06-26 13:26:54 +02:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
|
|
|
project(AdaptiveBrightness CXX)
|
|
|
|
|
2020-07-05 16:12:01 +02:00
|
|
|
option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." ON)
|
|
|
|
option(LOG_SOURCE_FILE "Log the location in the source file where the log originates" OFF)
|
|
|
|
option(LOG_FUNCTION "Log the name of the function where the log originates" OFF)
|
|
|
|
|
2020-06-26 13:26:54 +02:00
|
|
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
|
|
|
|
|
|
|
include(compile_flags)
|
|
|
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
|
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake Build Type" FORCE)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "CMake Configuration Types" FORCE)
|
|
|
|
|
2020-07-05 15:59:54 +02:00
|
|
|
if(${FORCE_COLORED_OUTPUT})
|
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
|
|
add_compile_options(-fdiagnostics-color=always)
|
|
|
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang")
|
|
|
|
add_compile_options(-fcolor-diagnostics)
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2020-06-26 13:26:54 +02:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
find_package(Qt5 COMPONENTS
|
|
|
|
Core
|
|
|
|
Gui
|
|
|
|
Widgets
|
|
|
|
SerialPort
|
|
|
|
REQUIRED
|
|
|
|
)
|
|
|
|
|
|
|
|
file(GLOB_RECURSE adaptive_brightness_srcs
|
|
|
|
AdaptiveBrightness/*.cpp
|
|
|
|
AdaptiveBrightness/*.hpp
|
|
|
|
|
|
|
|
AdaptiveBrightness/*.ui
|
|
|
|
AdaptiveBrightness/*.qrc
|
|
|
|
)
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
file(GLOB_RECURSE icon_resource
|
|
|
|
AdaptiveBrightness/*.rc
|
|
|
|
)
|
|
|
|
list(APPEND adaptive_brightness_srcs ${icon_resource})
|
|
|
|
|
|
|
|
add_executable(AdaptiveBrightness WIN32 ${adaptive_brightness_srcs})
|
|
|
|
else()
|
|
|
|
add_executable(AdaptiveBrightness ${adaptive_brightness_srcs})
|
|
|
|
endif()
|
|
|
|
|
|
|
|
target_include_directories(AdaptiveBrightness PUBLIC ./AdaptiveBrightness)
|
|
|
|
target_link_libraries(AdaptiveBrightness
|
|
|
|
Threads::Threads
|
|
|
|
Qt5::Core
|
|
|
|
Qt5::Gui
|
|
|
|
Qt5::Widgets
|
|
|
|
Qt5::SerialPort
|
|
|
|
)
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
get_target_property(QT5_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
|
|
|
|
get_filename_component(QT5_WINDEPLOYQT_EXECUTABLE ${QT5_QMAKE_EXECUTABLE} PATH)
|
|
|
|
set(QT5_WINDEPLOYQT_EXECUTABLE "${QT5_WINDEPLOYQT_EXECUTABLE}/windeployqt.exe")
|
|
|
|
|
|
|
|
add_custom_command(TARGET AdaptiveBrightness POST_BUILD
|
|
|
|
COMMAND ${QT5_WINDEPLOYQT_EXECUTABLE}
|
|
|
|
--no-system-d3d-compiler
|
|
|
|
--no-compiler-runtime
|
|
|
|
--no-opengl-sw
|
|
|
|
--qmldir "${CMAKE_SOURCE_DIR}/AdaptiveBrightness"
|
|
|
|
$<TARGET_FILE_DIR:AdaptiveBrightness>
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
adaptive_brightness_add_compile_flags(AdaptiveBrightness)
|
|
|
|
adaptive_brightness_enable_warnings(AdaptiveBrightness)
|
|
|
|
|
2020-07-05 16:12:01 +02:00
|
|
|
if(${LOG_SOURCE_FILE})
|
2020-07-05 16:13:35 +02:00
|
|
|
target_compile_definitions(${target} PUBLIC LOG_SOURCE_LOCATION)
|
2020-07-05 16:12:01 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(${LOG_FUNCTION})
|
2020-07-05 16:13:35 +02:00
|
|
|
target_compile_definitions(${target} PUBLIC LOG_FUNCTION_LOCATION)
|
2020-07-05 16:12:01 +02:00
|
|
|
endif()
|
2020-07-05 11:38:48 +02:00
|
|
|
|
2020-06-26 13:26:54 +02:00
|
|
|
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT AdaptiveBrightness)
|