Add cmake support

This commit is contained in:
BlackMark 2020-06-26 13:26:54 +02:00
parent fa5905870d
commit 343f30cdf8
3 changed files with 94 additions and 0 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ x64
*.o *.o
.qmake.stash .qmake.stash
Makefile* Makefile*
build*

80
CMakeLists.txt Normal file
View File

@ -0,0 +1,80 @@
cmake_minimum_required(VERSION 3.13)
project(AdaptiveBrightness CXX)
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)
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)
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT AdaptiveBrightness)

13
cmake/compile_flags.cmake Normal file
View File

@ -0,0 +1,13 @@
function(adaptive_brightness_add_compile_flags target)
if(MSVC)
target_compile_options(${target} PUBLIC /MP)
endif()
endfunction()
function(adaptive_brightness_enable_warnings target)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
target_compile_options(${target} PRIVATE -Wall -Wextra -pedantic)
elseif(MSVC)
target_compile_options(${target} PRIVATE /W3)
endif()
endfunction()