mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
149 lines
5.5 KiB
CMake
149 lines
5.5 KiB
CMake
set(_QSCI_ROOT "${CMAKE_SOURCE_DIR}/third_party/qscintilla")
|
|
|
|
# Try to find a pre-built library first
|
|
find_path(QScintilla_INCLUDE_DIR
|
|
NAMES Qsci/qsciscintilla.h
|
|
PATHS "${_QSCI_ROOT}/src" "${_QSCI_ROOT}/include"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
find_library(QScintilla_LIBRARY
|
|
NAMES
|
|
qscintilla2_qt${QT_VERSION_MAJOR} libqscintilla2_qt${QT_VERSION_MAJOR}
|
|
qscintilla2_qt6 libqscintilla2_qt6
|
|
qscintilla2_qt5 libqscintilla2_qt5
|
|
PATHS
|
|
"${_QSCI_ROOT}/src/release"
|
|
"${_QSCI_ROOT}/src"
|
|
"${_QSCI_ROOT}/lib"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
if(QScintilla_LIBRARY AND QScintilla_INCLUDE_DIR)
|
|
# Use pre-built library
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(QScintilla DEFAULT_MSG
|
|
QScintilla_LIBRARY QScintilla_INCLUDE_DIR)
|
|
if(NOT TARGET QScintilla::QScintilla)
|
|
add_library(QScintilla::QScintilla STATIC IMPORTED)
|
|
set_target_properties(QScintilla::QScintilla PROPERTIES
|
|
IMPORTED_LOCATION "${QScintilla_LIBRARY}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${QScintilla_INCLUDE_DIR}"
|
|
)
|
|
endif()
|
|
elseif(EXISTS "${_QSCI_ROOT}/src/qsciscintilla.cpp")
|
|
# Build from source
|
|
message(STATUS "Building QScintilla from source")
|
|
|
|
file(GLOB _QSCI_LEXER_SOURCES "${_QSCI_ROOT}/scintilla/lexers/*.cpp")
|
|
file(GLOB _QSCI_LEXLIB_SOURCES "${_QSCI_ROOT}/scintilla/lexlib/*.cpp")
|
|
file(GLOB _QSCI_SCI_SOURCES "${_QSCI_ROOT}/scintilla/src/*.cpp")
|
|
file(GLOB _QSCI_HEADERS "${_QSCI_ROOT}/src/Qsci/*.h")
|
|
|
|
set(_QSCI_QT_SOURCES
|
|
"${_QSCI_ROOT}/src/qsciscintilla.cpp"
|
|
"${_QSCI_ROOT}/src/qsciscintillabase.cpp"
|
|
"${_QSCI_ROOT}/src/qsciabstractapis.cpp"
|
|
"${_QSCI_ROOT}/src/qsciapis.cpp"
|
|
"${_QSCI_ROOT}/src/qscicommand.cpp"
|
|
"${_QSCI_ROOT}/src/qscicommandset.cpp"
|
|
"${_QSCI_ROOT}/src/qscidocument.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexer.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerasm.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexeravs.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerbash.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerbatch.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercmake.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercoffeescript.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercpp.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercsharp.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercss.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexercustom.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerd.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerdiff.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexeredifact.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerfortran.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerfortran77.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerhex.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerhtml.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexeridl.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerintelhex.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerjava.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerjavascript.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerjson.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerlua.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexermakefile.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexermarkdown.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexermasm.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexermatlab.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexernasm.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexeroctave.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerpascal.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerperl.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerpostscript.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerpo.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerpov.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerproperties.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerpython.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerruby.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerspice.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexersql.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexersrec.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexertcl.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexertekhex.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexertex.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerverilog.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexervhdl.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexerxml.cpp"
|
|
"${_QSCI_ROOT}/src/qscilexeryaml.cpp"
|
|
"${_QSCI_ROOT}/src/qscimacro.cpp"
|
|
"${_QSCI_ROOT}/src/qsciprinter.cpp"
|
|
"${_QSCI_ROOT}/src/qscistyle.cpp"
|
|
"${_QSCI_ROOT}/src/qscistyledtext.cpp"
|
|
"${_QSCI_ROOT}/src/InputMethod.cpp"
|
|
"${_QSCI_ROOT}/src/ListBoxQt.cpp"
|
|
"${_QSCI_ROOT}/src/PlatQt.cpp"
|
|
"${_QSCI_ROOT}/src/SciAccessibility.cpp"
|
|
"${_QSCI_ROOT}/src/SciClasses.cpp"
|
|
"${_QSCI_ROOT}/src/ScintillaQt.cpp"
|
|
)
|
|
|
|
add_library(qscintilla2 STATIC
|
|
${_QSCI_QT_SOURCES}
|
|
${_QSCI_HEADERS}
|
|
${_QSCI_LEXER_SOURCES}
|
|
${_QSCI_LEXLIB_SOURCES}
|
|
${_QSCI_SCI_SOURCES}
|
|
)
|
|
|
|
target_include_directories(qscintilla2 PUBLIC
|
|
"${_QSCI_ROOT}/src"
|
|
)
|
|
target_include_directories(qscintilla2 PRIVATE
|
|
"${_QSCI_ROOT}/scintilla/include"
|
|
"${_QSCI_ROOT}/scintilla/lexlib"
|
|
"${_QSCI_ROOT}/scintilla/src"
|
|
)
|
|
|
|
target_compile_definitions(qscintilla2 PRIVATE
|
|
SCINTILLA_QT
|
|
SCI_LEXER
|
|
INCLUDE_DEPRECATED_FEATURES
|
|
)
|
|
|
|
target_link_libraries(qscintilla2 PUBLIC
|
|
${QT}::Widgets
|
|
${QT}::PrintSupport
|
|
)
|
|
|
|
set_target_properties(qscintilla2 PROPERTIES AUTOMOC ON)
|
|
|
|
add_library(QScintilla::QScintilla ALIAS qscintilla2)
|
|
set(QScintilla_FOUND TRUE)
|
|
else()
|
|
set(QScintilla_FOUND FALSE)
|
|
if(QScintilla_FIND_REQUIRED)
|
|
message(FATAL_ERROR "Could NOT find QScintilla (missing source and pre-built library)")
|
|
endif()
|
|
endif()
|