Skip to content

Commit

Permalink
format CMakeLists.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
jacquetc committed Mar 5, 2024
1 parent a1483da commit cc86088
Showing 1 changed file with 52 additions and 53 deletions.
105 changes: 52 additions & 53 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.21)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)

# get version from git

include(VersionFromGit)
version_from_git(LOG ON)
add_compile_definitions(QLEANY_VERSION_SEMANTIC="${SEMVER}")
Expand All @@ -18,10 +17,10 @@ add_compile_definitions(QLEANY_VERSION_PATCH=${VERSION_PATCH})
set(QLEANY_VERSION_PATCH ${VERSION_PATCH})

project(
Qleany
VERSION ${QLEANY_VERSION}
LANGUAGES CXX
DESCRIPTION "Qleany is a light framework for Clean Architecture with Qt6")
Qleany
VERSION ${QLEANY_VERSION}
LANGUAGES CXX
DESCRIPTION "Qleany is a light framework for Clean Architecture with Qt6")
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)

# Compiler settings
Expand All @@ -40,34 +39,34 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
option(QLEANY_BUILD_WITH_QT_GUI "Build with Qt GUI" ON)

if(QLEANY_BUILD_WITH_QT_GUI)
add_compile_definitions(QLEANY_BUILD_WITH_QT_GUI=true)
add_compile_definitions(QLEANY_BUILD_WITH_QT_GUI=true)
endif()

if(BUILD_SHARED_LIBS)
set(LIB_TYPE SHARED)
set(LIB_TYPE SHARED)
else()
set(LIB_TYPE STATIC)
set(LIB_TYPE STATIC)
endif()

# Add Qt components
find_package(
Qt6
COMPONENTS Core Sql Concurrent
REQUIRED)
Qt6
COMPONENTS Core Sql Concurrent
REQUIRED)
qt_standard_project_setup()

if(QLEANY_BUILD_WITH_QT_GUI)
find_package(
Qt6
COMPONENTS Gui
REQUIRED)
find_package(
Qt6
COMPONENTS Gui
REQUIRED)
endif()

if(QLEANY_BUILD_EXAMPLES)
find_package(
Qt6
COMPONENTS Widgets
REQUIRED)
find_package(
Qt6
COMPONENTS Widgets
REQUIRED)
endif()

find_package(QCoro6 REQUIRED COMPONENTS Core)
Expand All @@ -78,7 +77,7 @@ qcoro_enable_coroutines()
# configure the library
file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
file(GLOB_RECURSE PUBLIC_HEADERS
"${CMAKE_CURRENT_SOURCE_DIR}/include/qleany/*.h")
"${CMAKE_CURRENT_SOURCE_DIR}/include/qleany/*.h")

message(STATUS "PUBLIC_HEADERS: ${PUBLIC_HEADERS}")

Expand All @@ -90,50 +89,50 @@ message(STATUS "Generating export header")

include(GenerateExportHeader)
generate_export_header(
qleany EXPORT_FILE_NAME
${CMAKE_CURRENT_BINARY_DIR}/include/qleany/qleany_export.h)
qleany EXPORT_FILE_NAME
${CMAKE_CURRENT_BINARY_DIR}/include/qleany/qleany_export.h)

target_include_directories(qleany PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include)

target_include_directories(
qleany
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/qleany>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
qleany
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/qleany>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)

set_target_properties(qleany PROPERTIES CXX_STANDARD 20)

set_target_properties(qleany PROPERTIES OUTPUT_NAME qleany)
set_target_properties(
qleany
PROPERTIES
qleany
PROPERTIES
PUBLIC_HEADER
"${PUBLIC_HEADERS};${CMAKE_CURRENT_BINARY_DIR}/include/qleany/qleany_export.h"
)
set_target_properties(qleany PROPERTIES POSITION_INDEPENDENT_CODE
${BUILD_SHARED_LIBS})
${BUILD_SHARED_LIBS})

target_link_libraries(qleany PUBLIC Qt6::Core Qt6::Concurrent Qt6::Sql)

if(QLEANY_BUILD_WITH_QT_GUI)
target_link_libraries(qleany PRIVATE Qt::Gui)
target_link_libraries(qleany PRIVATE Qt::Gui)
endif()

# state that Qleany need PIC when the default is shared libraries
set_target_properties(qleany PROPERTIES POSITION_INDEPENDENT_CODE
${BUILD_SHARED_LIBS})
${BUILD_SHARED_LIBS})

# configure the install location
message(STATUS "Configuring install location")
include(GNUInstallDirs)

# Install library
install(
TARGETS qleany
EXPORT qleanyTargets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include/qleany)
TARGETS qleany
EXPORT qleanyTargets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include/qleany)

# Install public headers
install(DIRECTORY include/qleany DESTINATION include)
Expand All @@ -143,41 +142,41 @@ install(FILES LICENSE DESTINATION share/qleany)

# Install the export set for use with the install-tree
install(
EXPORT qleanyTargets
FILE qleanyTargets.cmake
DESTINATION lib/cmake/qleany)
EXPORT qleanyTargets
FILE qleanyTargets.cmake
DESTINATION lib/cmake/qleany)

# Create and install qleanyConfig.cmake
message(STATUS "Creating and installing qleanyConfig.cmake")
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
qleanyConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
qleanyConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)

configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/qleanyConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/qleanyConfig.cmake
INSTALL_DESTINATION lib/cmake/qleany)
${CMAKE_CURRENT_SOURCE_DIR}/qleanyConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/qleanyConfig.cmake
INSTALL_DESTINATION lib/cmake/qleany)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qleanyConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/qleanyConfigVersion.cmake
DESTINATION lib/cmake/qleany)
${CMAKE_CURRENT_BINARY_DIR}/qleanyConfigVersion.cmake
DESTINATION lib/cmake/qleany)

# Export the targets to a script
# message(STATUS "Exporting targets to a script") export(EXPORT
# ${PROJECT_NAME}Targets FILE ${CMAKE_CURRENT_BINARY_DIR}/qleanyTargets.cmake)

# Subdirectories that contain CMakeLists.txt for the framework tests and example
if(QLEANY_BUILD_TESTS)
add_subdirectory(tests)
add_subdirectory(tests)
endif()

if(QLEANY_BUILD_EXAMPLES)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)
set(CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR} ${CMAKE_PREFIX_PATH})
set(CMAKE_LIBRARY_PATH ${CMAKE_BINARY_DIR} ${CMAKE_LIBRARY_PATH})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)
set(CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR} ${CMAKE_PREFIX_PATH})
set(CMAKE_LIBRARY_PATH ${CMAKE_BINARY_DIR} ${CMAKE_LIBRARY_PATH})

add_subdirectory(examples)
add_subdirectory(examples)
endif()

0 comments on commit cc86088

Please sign in to comment.