107 lines
2.9 KiB
CMake
107 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.16) # Qt requires CMake 3.16
|
|
project(qmarkdowntextedit LANGUAGES CXX VERSION 1.0.0)
|
|
|
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
# add option to disable test executable
|
|
option(QMARKDOWNTEXTEDIT_EXE "Build test executable" ON)
|
|
|
|
# find qt
|
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
|
find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS Quick)
|
|
|
|
# needed for windows
|
|
if(WIN32)
|
|
set(INTL_LDFLAGS -lintl)
|
|
endif(WIN32)
|
|
|
|
# QMarkdownTextEdit library
|
|
set(RC_FILES
|
|
media.qrc
|
|
)
|
|
|
|
# Translations arent loaded so don't include them
|
|
set(TS_FILES
|
|
trans/qmarkdowntextedit_de.ts
|
|
trans/qmarkdowntextedit_ur.ts
|
|
trans/qmarkdowntextedit_zh_CN.ts
|
|
)
|
|
|
|
set(QMARKDOWNTEXTEDIT_SOURCES
|
|
${RC_FILES}
|
|
linenumberarea.h # We need to keep this here, otherwise the build fails
|
|
markdownhighlighter.cpp
|
|
qmarkdowntextedit.cpp
|
|
qownlanguagedata.cpp
|
|
qownlanguagedata.h
|
|
qplaintexteditsearchwidget.cpp
|
|
qplaintexteditsearchwidget.ui
|
|
)
|
|
set(QMARKDOWNTEXTEDIT_HEADERS
|
|
markdownhighlighter.h
|
|
qmarkdowntextedit.h
|
|
qplaintexteditsearchwidget.h
|
|
)
|
|
|
|
add_library(qmarkdowntextedit ${QMARKDOWNTEXTEDIT_SOURCES})
|
|
set_target_properties(qmarkdowntextedit PROPERTIES
|
|
PUBLIC_HEADER "${QMARKDOWNTEXTEDIT_HEADERS}"
|
|
)
|
|
|
|
target_link_libraries(qmarkdowntextedit PUBLIC
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
${INTL_LDFLAGS}
|
|
)
|
|
|
|
if (Qt${QT_VERSION_MAJOR}Quick_FOUND)
|
|
target_link_libraries(qmarkdowntextedit PUBLIC Qt${QT_VERSION_MAJOR}::Quick)
|
|
|
|
add_executable(QtQuickExample examples/qml/example.cpp examples/qml/ressources.qrc)
|
|
target_link_libraries(QtQuickExample PRIVATE Qt${QT_VERSION_MAJOR}::Quick qmarkdowntextedit)
|
|
endif()
|
|
|
|
# QMarkdownTextEdit executable
|
|
if(QMARKDOWNTEXTEDIT_EXE)
|
|
set(SOURCE_FILES
|
|
main.cpp
|
|
mainwindow.cpp
|
|
mainwindow.h
|
|
mainwindow.ui
|
|
)
|
|
|
|
add_executable(qmarkdowntextedit-exe ${SOURCE_FILES})
|
|
set_target_properties(qmarkdowntextedit-exe PROPERTIES OUTPUT_NAME "qmarkdowntextedit")
|
|
target_link_libraries(qmarkdowntextedit-exe PRIVATE
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
${INTL_LDFLAGS}
|
|
qmarkdowntextedit
|
|
)
|
|
endif()
|
|
|
|
include(GNUInstallDirs) # Doesn't fail on windows
|
|
|
|
# Install the lib
|
|
install(TARGETS qmarkdowntextedit
|
|
ARCHIVE DESTINATION lib
|
|
LIBRARY DESTINATION lib
|
|
RUNTIME DESTINATION bin
|
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
# Add PkgConfig config file
|
|
configure_file(qmarkdowntextedit.pc.in ${CMAKE_BINARY_DIR}/qmarkdowntextedit.pc @ONLY)
|
|
install(FILES ${CMAKE_BINARY_DIR}/qmarkdowntextedit.pc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
|
|
|
|
# Install exe
|
|
if(QMARKDOWNTEXTEDIT_EXE)
|
|
install(TARGETS qmarkdowntextedit-exe DESTINATION bin)
|
|
endif()
|