cmake find package; font config; clang tidy 10
This commit is contained in:
parent
b27bfe6f02
commit
c09cf8e9c7
|
@ -92,8 +92,10 @@ PenaltyExcessCharacter: 1000000
|
|||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Left
|
||||
RawStringFormats:
|
||||
- Delimiter: pb
|
||||
Language: TextProto
|
||||
- Language: TextProto
|
||||
Delimiters:
|
||||
- 'pb'
|
||||
- 'proto'
|
||||
BasedOnStyle: google
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
|
@ -112,5 +114,6 @@ SpacesInSquareBrackets: true
|
|||
Standard: Cpp11
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
UseCRLF: Always
|
||||
...
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
cmake_minimum_required(VERSION 3.16.3)
|
||||
|
||||
project(qskinny VERSION 999.99.9) # TODO get from git branch name or
|
||||
project(QSkinny VERSION 999.99.9) # TODO get from git branch name or
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
|
@ -36,10 +36,7 @@ else()
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if("${Qt5_DIR}" STREQUAL "" AND "${Qt6_DIR}" STREQUAL "")
|
||||
message(FATAL_ERROR "Neither Qt5_DIR nor Qt6_DIR defined!")
|
||||
else()
|
||||
if(NOT "${Qt5_DIR}" STREQUAL "")
|
||||
if(NOT "${Qt5_DIR}" STREQUAL "")
|
||||
find_package(Qt5 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets)
|
||||
find_package(Qt5 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore)
|
||||
set(Qt Qt${Qt5_VERSION_MAJOR})
|
||||
|
@ -47,7 +44,7 @@ else()
|
|||
set(Qt_VERSION_MAJOR ${Qt5_VERSION_MAJOR})
|
||||
set(Qt_VERSION_MINOR ${Qt5_VERSION_MINOR})
|
||||
set(Qt_VERSION_PATCH ${Qt5_VERSION_PATCH})
|
||||
elseif(NOT "${Qt6_DIR}" STREQUAL "")
|
||||
elseif(NOT "${Qt6_DIR}" STREQUAL "")
|
||||
|
||||
string(REPLACE "/lib/cmake/Qt6" "" Qt6_PREFIX_DIR "${Qt6_DIR}")
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${Qt6_PREFIX_DIR})
|
||||
|
@ -59,7 +56,6 @@ else()
|
|||
set(Qt_VERSION_MAJOR ${Qt6_VERSION_MAJOR})
|
||||
set(Qt_VERSION_MINOR ${Qt6_VERSION_MINOR})
|
||||
set(Qt_VERSION_PATCH ${Qt6_VERSION_PATCH})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TRUE)
|
||||
|
@ -70,7 +66,6 @@ if(TRUE)
|
|||
endif()
|
||||
|
||||
# define install directories
|
||||
|
||||
set(QSK_INSTALL_DOCS doc)
|
||||
set(QSK_INSTALL_HEADERS include)
|
||||
set(QSK_INSTALL_LIBS lib)
|
||||
|
@ -78,6 +73,15 @@ set(QSK_INSTALL_BINS bin)
|
|||
set(QSK_INSTALL_PLUGINS plugins)
|
||||
set(QSK_INSTALL_EXAMPLES examples)
|
||||
|
||||
# define debug postfix globally
|
||||
set(CMAKE_DEBUG_POSTFIX d)
|
||||
# define binary install directory globally
|
||||
set(CMAKE_INSTALL_BINDIR ${QSK_INSTALL_BINS}$<$<CONFIG:Debug>:/debug>)
|
||||
# define library install directory globally
|
||||
# set(CMAKE_INSTALL_LIBDIR lib$<$<CONFIG:Debug>:/debug>)
|
||||
# define install rpath globally
|
||||
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${QSK_INSTALL_LIBS})
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(skins)
|
||||
add_subdirectory(inputcontext)
|
||||
|
@ -98,3 +102,46 @@ endif()
|
|||
# doc/*.metadox
|
||||
# doc/classes/*.dox
|
||||
# doc/classes/*.metadox
|
||||
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
set(PACKAGE_NAMESPACE Qsk)
|
||||
set(PACKAGE_LOCATION lib/cmake/${PROJECT_NAME})
|
||||
|
||||
install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets
|
||||
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
||||
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
|
||||
RUNTIME DESTINATION ${QSK_INSTALL_LIBS}
|
||||
INCLUDES DESTINATION ${QSK_INSTALL_HEADERS})
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
export(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}::)
|
||||
|
||||
configure_file(cmake/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake
|
||||
COPYONLY)
|
||||
|
||||
install(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE
|
||||
${PACKAGE_NAME}Targets.cmake
|
||||
NAMESPACE
|
||||
${PACKAGE_NAMESPACE}::
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION})
|
||||
|
||||
install(
|
||||
FILES
|
||||
cmake/${PACKAGE_NAME}Config.cmake
|
||||
cmake/${PACKAGE_NAME}Macros.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION}
|
||||
COMPONENT
|
||||
Devel)
|
|
@ -0,0 +1,2 @@
|
|||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyMacros.cmake")
|
|
@ -1,7 +1,7 @@
|
|||
if(TARGET ${Qt}::Svg)
|
||||
## @param SVG_FILENAME absolute filename to the svg
|
||||
## @param QVG_FILENAME absolute filename to the qvg
|
||||
function(svg2qvg SVG_FILENAME QVG_FILENAME)
|
||||
function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME)
|
||||
get_filename_component(QVG_FILENAME ${QVG_FILENAME} ABSOLUTE)
|
||||
get_filename_component(SVG_FILENAME ${SVG_FILENAME} ABSOLUTE)
|
||||
add_custom_command(
|
|
@ -39,16 +39,14 @@ target_link_libraries(${TARGET_NAME}
|
|||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
option(ENABLE_AUTOQVG "enable automatic qvg compilation" OFF)
|
||||
|
||||
if(ENABLE_AUTOQVG)
|
||||
svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.01.10.svg
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.01.10.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.01.10.qvg)
|
||||
svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.03.04q.svg
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.03.04q.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.03.04q.qvg)
|
||||
svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.08.05q.svg
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.08.05q.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.08.05q.qvg)
|
||||
svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.25.18.svg
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.25.18.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.25.18.qvg)
|
||||
else()
|
||||
# When cross compiling we need to have the svg2qvg tool being
|
||||
|
|
|
@ -45,15 +45,15 @@ list(APPEND CONFIG hide_symbols)
|
|||
# }
|
||||
# }
|
||||
|
||||
set(MOC_DIR moc)
|
||||
set(OBJECTS_DIR obj)
|
||||
set(RCC_DIR rcc)
|
||||
|
||||
option(BUILD_QSKDLL "build qskinny as shared library" ON)
|
||||
option(BUILD_EXAMPLES "build qskinny examples" ON)
|
||||
option(BUILD_PLAYGROUND "build qskinny playground" ON)
|
||||
option(ENABLE_PINYIN "enable romanization system for standard mandarin chinese" OFF) # TODO try find pkg-config
|
||||
option(ENABLE_HUNSPELL "enable spell checker" OFF) # TODO try find pkg-config
|
||||
option(BUILD_QSKDLL "Build qskinny as shared library" ON)
|
||||
option(BUILD_EXAMPLES "Build qskinny examples" ON)
|
||||
option(BUILD_PLAYGROUND "Build qskinny playground" ON)
|
||||
option(BUILD_SVG2QVG_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
|
||||
option(ENABLE_PINYIN "Enable romanization system for standard mandarin chinese" OFF) # TODO try find pkg-config
|
||||
option(ENABLE_HUNSPELL "Enable spell checker" OFF) # TODO try find pkg-config
|
||||
option(ENABLE_FONT_CONFIG "Enable font config for font caching" ON)
|
||||
option(ENABLE_ENSURE_SKINS "Enabling fall back code, that inserts some skin factories manually when not finding skin factories as plugins" ON)
|
||||
option(ENABLE_AUTOQVG "enable automatic qvg compilation" ON)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(LINUX TRUE)
|
||||
|
|
|
@ -15,7 +15,7 @@ list(APPEND TARGET_OTHER_FILES
|
|||
metadata.json)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES}) # TODO remove lib files during installation?
|
||||
else()
|
||||
add_library(${TARGET_NAME} STATIC ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
endif()
|
||||
|
|
|
@ -15,7 +15,7 @@ list(APPEND TARGET_OTHER_FILES
|
|||
metadata.json)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES}) # TODO remove lib files during installation?
|
||||
else()
|
||||
add_library(${TARGET_NAME} STATIC ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
endif()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
include(${CMAKE_SOURCE_DIR}/features/qskconfig.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/scripts/cmake/qskinny-macros.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/QSkinnyMacros.cmake)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
common/QskArcMetrics.h
|
||||
|
@ -406,13 +406,18 @@ endif()
|
|||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
common
|
||||
graphic
|
||||
nodes
|
||||
controls
|
||||
layouts
|
||||
dialogs
|
||||
inputpanel)
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/common>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/common>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/graphic>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/nodes>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/controls>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/layouts>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/dialogs>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/inputpanel>)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
INTERFACE
|
||||
$<INSTALL_INTERFACE:${QSK_INSTALL_HEADERS}>)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PUBLIC
|
||||
|
@ -438,6 +443,3 @@ set_target_properties(${TARGET_NAME}
|
|||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOGEN_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/qskinny_autogen)
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_LIBS})
|
||||
install(FILES ${TARGET_HEADERS} DESTINATION ${QSK_INSTALL_HEADERS})
|
|
@ -1,8 +1,3 @@
|
|||
# TODO
|
||||
# CONFIG += ensure_skins
|
||||
# CONFIG += fontconfig
|
||||
# CONFIG += qskinny
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
SkinnyGlobal.h
|
||||
SkinnyNamespace.h
|
||||
|
@ -16,24 +11,6 @@ list(APPEND TARGET_SOURCES
|
|||
SkinnyShapeProvider.cpp
|
||||
SkinnyShortcut.cpp)
|
||||
|
||||
# TODO
|
||||
#fontconfig{
|
||||
#
|
||||
# QSK_FONTDIR = $${PWD} / fonts QSK_FONTCACHEDIR =
|
||||
# $${OUT_PWD} / fontconfig QSK_FONTCONF_FILE =
|
||||
# $${QSK_FONTCACHEDIR} / fonts.conf
|
||||
#
|
||||
# QSK_FONTCONF_DATA =
|
||||
# "$$cat($${PWD}/fonts.conf.in, false)" QSK_FONTCONF_DATA = $$replace(
|
||||
# QSK_FONTCONF_DATA, FONTCACHEDIR, $${QSK_FONTCACHEDIR})
|
||||
# QSK_FONTCONF_DATA = $$replace(
|
||||
# QSK_FONTCONF_DATA, FONTDIR, $${QSK_FONTDIR})
|
||||
# write_file($${QSK_FONTCONF_FILE}, QSK_FONTCONF_DATA)
|
||||
#
|
||||
# DEFINES +=
|
||||
# FONTCONFIG_FILE = $$clean_path($$QSK_FONTCONF_FILE)
|
||||
#}
|
||||
|
||||
set(TARGET_NAME qsktestsupport)
|
||||
|
||||
if (BUILD_QSKDLL)
|
||||
|
@ -42,6 +19,20 @@ else()
|
|||
add_library(${TARGET_NAME} STATIC ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
endif()
|
||||
|
||||
if(ENABLE_FONT_CONFIG)
|
||||
set(QSK_FONTDIR ${CMAKE_CURRENT_LIST_DIR}/fonts)
|
||||
set(QSK_FONTCACHEDIR ${CMAKE_CURRENT_BINARY_DIR}/fontconfig)
|
||||
set(QSK_FONTCONF_FILE ${QSK_FONTCACHEDIR}/fonts.conf)
|
||||
|
||||
configure_file(fonts.conf.cmake.in ${QSK_FONTCONF_FILE}
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
FONTCONFIG_FILE=${QSK_FONTCONF_FILE})
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
AUTOMOC ON)
|
||||
|
||||
|
@ -57,14 +48,12 @@ endif()
|
|||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
PLUGIN_PATH=${CMAKE_INSTALL_PREFIX}/skins)
|
||||
PLUGIN_PATH=${CMAKE_INSTALL_PREFIX}/skins) # TODO this'll work only locally since CMAKE_INSTALL_PREFIX is an absolute path
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
option(ENABLE_ENSURE_SKINS "Enabling fall back code, that inserts some skin factories manually when not finding skin factories as plugins" ON)
|
||||
|
||||
if(ENABLE_ENSURE_SKINS)
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/skins)
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE ENSURE_SKINS)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<dir>@QSK_FONTDIR@</dir>
|
||||
<cachedir>@QSK_FONTCACHEDIR@/cache</cachedir>
|
||||
</fontconfig>
|
|
@ -1,9 +1,6 @@
|
|||
set(TARGET_NAME svg2qvg)
|
||||
set(TARGET_INSTALL_SUFFIX bin/tools)
|
||||
set(TARGET_SOURCES main.cpp)
|
||||
|
||||
option(BUILD_SVG2QVG_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
|
||||
|
||||
add_executable(${TARGET_NAME} ${TARGET_SOURCES})
|
||||
|
||||
if(BUILD_SVG2QVG_STANDALONE)
|
||||
|
@ -53,4 +50,4 @@ set_target_properties(${TARGET_NAME}
|
|||
PROPERTIES
|
||||
FOLDER tools)
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${TARGET_INSTALL_SUFFIX})
|
||||
install(TARGETS ${TARGET_NAME})
|
||||
|
|
Loading…
Reference in New Issue