Add cmake support
This commit is contained in:
parent
fa5905870d
commit
343f30cdf8
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ x64
|
||||
*.o
|
||||
.qmake.stash
|
||||
Makefile*
|
||||
build*
|
||||
|
80
CMakeLists.txt
Normal file
80
CMakeLists.txt
Normal 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
13
cmake/compile_flags.cmake
Normal 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()
|
Loading…
Reference in New Issue
Block a user