4
0
mirror of https://github.com/QuasarApp/QuasarAppLib.git synced 2025-05-04 13:39:42 +00:00

first version cmake build system

This commit is contained in:
Andrei Yankovich 2019-08-29 16:28:09 +03:00
parent 2d755daeef
commit 29b9baa3ab
3 changed files with 79 additions and 0 deletions

32
CMakeLists.txt Normal file

@ -0,0 +1,32 @@
#
# Copyright (C) 2018-2019 QuasarApp.
# Distributed under the lgplv3 software license, see the accompanying
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.1)
include(cmake/QuasarAppOut.cmake)
project(${QUASARAPP_LIB_NAME} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${QUASARAPP_LIB_OUTPUT_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${QUASARAPP_LIB_OUTPUT_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${QUASARAPP_LIB_OUTPUT_DIR}/bin)
find_package(Qt5 COMPONENTS Core REQUIRED)
file(GLOB SOURCE_CPP
"*.cpp"
)
add_library(${PROJECT_NAME} SHARED ${SOURCE_CPP})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core)

25
cmake/QuasarApp.cmake Normal file

@ -0,0 +1,25 @@
#
# Copyright (C) 2018-2019 QuasarApp.
# Distributed under the lgplv3 software license, see the accompanying
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.1)
IF(NOT QUASARAPP_LIB)
SET(QUASARAPP_LIB True)
include(QuasarAppOut.cmake)
message(STATUS "buid type " ${CMAKE_BUILD_TYPE})
message(STATUS "Project " ${PROJECT_NAME})
message(STATUS "c compiler " ${CMAKE_C_COMPILER})
message(STATUS "cxx compiler " ${CMAKE_CXX_COMPILER})
message(STATUS "build shared " ${BUILD_SHARED_LIBS})
target_link_libraries(${PROJECT_NAME} ${QUASARAPP_LIB_NAME})
target_include_directories(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/../)
ENDIF(NOT QUASARAPP_LIB)

22
cmake/QuasarAppOut.cmake Normal file

@ -0,0 +1,22 @@
#
# Copyright (C) 2018-2019 QuasarApp.
# Distributed under the lgplv3 software license, see the accompanying
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release)
ENDIF(NOT CMAKE_BUILD_TYPE)
SET(QUASARAPP_LIB_NAME QuasarApp)
IF(CMAKE_BUILD_TYPE EQUAL Release)
SET(QUASARAPP_LIB_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build/release)
ELSE()
SET(QUASARAPP_LIB_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build/debug)
ENDIF(CMAKE_BUILD_TYPE EQUAL Release)
message(QUASARAPP_LIB_OUTPUT_DIR = ${QUASARAPP_LIB_OUTPUT_DIR})