mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 15:37:23 +00:00
Move old chechUpdates() method to this class. Create ability to show ChangeLog after updates (by using global config with version). Changelog (only for the latest version) will be written to version.h during cmake run.
87 lines
2.9 KiB
CMake
87 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
# some fucking magic
|
|
cmake_policy(SET CMP0003 OLD)
|
|
cmake_policy(SET CMP0002 OLD)
|
|
cmake_policy(SET CMP0011 NEW)
|
|
cmake_policy(SET CMP0015 NEW)
|
|
if (POLICY CMP0063)
|
|
cmake_policy(SET CMP0063 OLD)
|
|
endif ()
|
|
|
|
project(awesomewidgets)
|
|
set(PROJECT_AUTHOR "Evgeniy Alekseev")
|
|
set(PROJECT_CONTACT "esalexeev@gmail.com")
|
|
set(PROJECT_LICENSE "GPL3")
|
|
set(PROJECT_VERSION_MAJOR "3")
|
|
set(PROJECT_VERSION_MINOR "0")
|
|
set(PROJECT_VERSION_PATCH "1")
|
|
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
# append git version if any
|
|
set(PROJECT_COMMIT_SHA "Commit hash" CACHE INTERNAL "")
|
|
include(checkgit.cmake)
|
|
|
|
string(TIMESTAMP CURRENT_DATE "%Y-%m-%d %H:%M" UTC)
|
|
string(TIMESTAMP CURRENT_YEAR "%Y")
|
|
|
|
message(STATUS "Project: ${PROJECT_NAME}")
|
|
message(STATUS "Version: ${PROJECT_VERSION}")
|
|
message(STATUS "Build date: ${CURRENT_DATE}")
|
|
|
|
# components
|
|
option(BUILD_PLASMOIDS "Build plasmoids" ON)
|
|
option(BUILD_DEB_PACKAGE "Build deb package" OFF)
|
|
option(BUILD_RPM_PACKAGE "Build rpm package" OFF)
|
|
# build details
|
|
option(BUILD_FUTURE "Build with the features which will be marked as stable later" OFF)
|
|
option(BUILD_TESTING "Build with additional test abilities" OFF)
|
|
# some additional targets
|
|
set(CLANGFORMAT_EXECUTABLE "/usr/bin/clang-format" CACHE STRING "Path to clang-format executable")
|
|
set(CPPCHECK_EXECUTABLE "/usr/bin/cppcheck" CACHE STRING "Path to cppcheck executable")
|
|
|
|
# generate changelog
|
|
set(PROJECT_CHANGELOG "Changelog" CACHE INTERNAL "")
|
|
include(changelog.cmake)
|
|
|
|
# flags
|
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
|
set(CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++14")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
|
set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG")
|
|
# avoid newer gcc warnings
|
|
add_definitions(-D_DEFAULT_SOURCE)
|
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
set(CMAKE_CXX_FLAGS "-Wall -std=c++14 -stdlib=libc++")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
|
set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG")
|
|
# linker flags
|
|
set(CMAKE_EXE_LINKER_FLAGS "-lc++abi")
|
|
set(CMAKE_MODULE_LINKER_FLAGS "-lc++abi")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "-lc++abi")
|
|
else ()
|
|
message(FATAL_ERROR "Unknown compiler")
|
|
endif ()
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
endif ()
|
|
|
|
set(PROJECT_TRDPARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
|
|
set(PROJECT_LIBRARY awesomewidgets)
|
|
include(libraries.cmake)
|
|
include(clang-format.cmake)
|
|
include(cppcheck.cmake)
|
|
|
|
get_directory_property(CMAKE_DEFINITIONS COMPILE_DEFINITIONS)
|
|
configure_file(${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
|
|
add_subdirectory(awesomewidgets)
|
|
add_subdirectory(extsysmon)
|
|
if (BUILD_PLASMOIDS)
|
|
add_subdirectory(awesome-widget)
|
|
add_subdirectory(desktop-panel)
|
|
add_subdirectory(translations)
|
|
endif ()
|
|
|
|
include(packages-recipe.cmake)
|