-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
131 lines (96 loc) · 4.51 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# SPDX-FileCopyrightText: 2024 Igor Mironchik <igor.mironchik@gmail.com>
# SPDX-License-Identifier: GPL-3.0-or-later
cmake_minimum_required( VERSION 3.19 )
project( markdown-tools )
option( BUILD_MDPDF_TESTS "Build tests? Default ON." ON )
list( PREPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR} )
list( PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR} )
set( KF_MIN_VERSION "5.246.0" )
set( KF_MAJOR_VERSION "6" )
find_package( ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE )
list( APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}" )
include( ECMEnableSanitizers )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin )
execute_process( COMMAND git rev-parse --short HEAD
OUTPUT_VARIABLE MARKDOWN_TOOLS_VERSION_MINOR
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE )
set( MD_TOOLS_VERSION "0.11.0 build ${MARKDOWN_TOOLS_VERSION_MINOR}" )
set( MDPDF_VERSION ${MD_TOOLS_VERSION} )
set( MDEDITOR_VERSION ${MD_TOOLS_VERSION} )
find_package( QT NAMES Qt6 REQUIRED COMPONENTS Core )
if( UNIX AND NOT APPLE )
list( PREPEND CMAKE_INSTALL_RPATH "${QT6_INSTALL_PREFIX}/lib:\$ORIGIN/../lib" )
else()
list( PREPEND CMAKE_INSTALL_RPATH "${QT6_INSTALL_PREFIX}/lib" )
list( PREPEND CMAKE_INSTALL_RPATH "@executable_path/../lib" )
list( PREPEND CMAKE_INSTALL_RPATH "@loader_path/../lib" )
endif()
set( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
set( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
set( CMAKE_MACOSX_RPATH TRUE )
link_directories( ${CMAKE_BINARY_DIR}/lib )
if( NOT CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE "Release"
CACHE STRING "Choose the type of build."
FORCE)
endif( NOT CMAKE_BUILD_TYPE )
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
if( NOT DEFINED _DISABLE_INSTALLATION )
set( _DISABLE_INSTALLATION FALSE )
macro(install)
if( NOT _DISABLE_INSTALLATION )
_install( ${ARGN} )
endif()
endmacro()
endif()
set( _DISABLE_INSTALLATION TRUE )
set( PODOFO_BUILD_LIB_ONLY ON CACHE INTERNAL "" FORCE )
add_subdirectory( 3rdparty/podofo )
set( JKQtPlotter_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE )
set( JKQtPlotter_BUILD_TOOLS OFF CACHE INTERNAL "" FORCE )
set( JKQtPlotter_BUILD_TESTS OFF CACHE INTERNAL "" FORCE )
set( JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER OFF CACHE INTERNAL "" FORCE )
set( JKQtPlotter_BUILD_LIB_JKQTPLOTTER OFF CACHE INTERNAL "" FORCE )
add_subdirectory( 3rdparty/JKQtPlotter )
set( BUILD_MD4QT_QT_TESTS OFF CACHE INTERNAL "" FORCE )
add_subdirectory( 3rdparty/md4qt )
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/args-parser
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cfgfile
${md4qt_INCLUDE_DIRECTORIES} )
add_subdirectory( 3rdparty/cfgfile/generator )
set( _DISABLE_INSTALLATION FALSE )
install( TARGETS podofo_shared )
install( TARGETS JKQTCommon${QT_VERSION_MAJOR} )
install( TARGETS JKQTMath${QT_VERSION_MAJOR} )
install( TARGETS JKQTMathText${QT_VERSION_MAJOR} )
set( CFGFILE_GENERATOR ${CMAKE_CURRENT_BINARY_DIR}/bin/cfgfile.generator${CMAKE_EXECUTABLE_SUFFIX} )
add_library( resvg UNKNOWN IMPORTED )
add_custom_target( build_resvg ALL
COMMAND cargo build --release
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/crates/c-api"
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}resvg${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} )
if( WIN32 )
set_target_properties( resvg PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}resvg${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} )
install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}resvg${CMAKE_SHARED_LIBRARY_SUFFIX}
TYPE BIN )
else()
set_target_properties( resvg PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}resvg${CMAKE_SHARED_LIBRARY_SUFFIX} )
install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}resvg${CMAKE_SHARED_LIBRARY_SUFFIX}
TYPE LIB )
endif()
set_target_properties( resvg PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/resvg/crates/c-api )
add_dependencies( resvg build_resvg )
add_subdirectory( src )
if( BUILD_MDPDF_TESTS )
enable_testing()
add_subdirectory( tests )
endif()