Warning, /rolisteam/rolisteam-diceparser/src/libparser/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 set(QT_REQUIRED_VERSION "6.2.0")
0004 set(QT_VERSION_MAJOR "6")
0005 find_package(Qt${QT_VERSION_MAJOR} ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Core Test Gui Svg)
0006 find_package(Qt${QT_VERSION_MAJOR} ${QT_REQUIRED_VERSION} CONFIG COMPONENTS Qml Concurrent)
0007 
0008 include_directories(${CMAKE_CURRENT_SOURCE_DIR} result node)
0009 
0010 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
0011 
0012 set(dice_header_path include/diceparser)
0013 
0014 set(dice_public_headers ${dice_header_path}/diceparser_global.h
0015 ${dice_header_path}/dicealias.h
0016 ${dice_header_path}/diceparser.h
0017 ${dice_header_path}/diceparserhelper.h
0018 ${dice_header_path}/highlightdice.h
0019 ${dice_header_path}/parsingtoolbox.h # should not be public…
0020 )
0021 
0022 
0023 SET( dice_sources
0024     ${CMAKE_CURRENT_SOURCE_DIR}/diceparser.cpp
0025     ${CMAKE_CURRENT_SOURCE_DIR}/range.cpp
0026     ${CMAKE_CURRENT_SOURCE_DIR}/booleancondition.cpp
0027     ${CMAKE_CURRENT_SOURCE_DIR}/validator.cpp
0028     ${CMAKE_CURRENT_SOURCE_DIR}/validatorlist.cpp
0029     ${CMAKE_CURRENT_SOURCE_DIR}/operationcondition.cpp
0030     ${CMAKE_CURRENT_SOURCE_DIR}/die.cpp
0031     ${CMAKE_CURRENT_SOURCE_DIR}/parsingtoolbox.cpp
0032     ${CMAKE_CURRENT_SOURCE_DIR}/dicealias.cpp
0033     ${CMAKE_CURRENT_SOURCE_DIR}/result/result.cpp
0034     ${CMAKE_CURRENT_SOURCE_DIR}/result/scalarresult.cpp
0035     ${CMAKE_CURRENT_SOURCE_DIR}/result/stringresult.cpp
0036     ${CMAKE_CURRENT_SOURCE_DIR}/result/diceresult.cpp
0037     ${CMAKE_CURRENT_SOURCE_DIR}/node/countexecutenode.cpp
0038     ${CMAKE_CURRENT_SOURCE_DIR}/node/dicerollernode.cpp
0039     ${CMAKE_CURRENT_SOURCE_DIR}/node/executionnode.cpp
0040     ${CMAKE_CURRENT_SOURCE_DIR}/node/explodedicenode.cpp
0041     ${CMAKE_CURRENT_SOURCE_DIR}/node/helpnode.cpp
0042     ${CMAKE_CURRENT_SOURCE_DIR}/node/allsamenode.cpp
0043     ${CMAKE_CURRENT_SOURCE_DIR}/node/mergenode.cpp
0044     ${CMAKE_CURRENT_SOURCE_DIR}/node/jumpbackwardnode.cpp
0045     ${CMAKE_CURRENT_SOURCE_DIR}/node/keepdiceexecnode.cpp
0046     ${CMAKE_CURRENT_SOURCE_DIR}/node/listaliasnode.cpp
0047     ${CMAKE_CURRENT_SOURCE_DIR}/node/listsetrollnode.cpp
0048     ${CMAKE_CURRENT_SOURCE_DIR}/node/numbernode.cpp
0049     ${CMAKE_CURRENT_SOURCE_DIR}/node/parenthesesnode.cpp
0050     ${CMAKE_CURRENT_SOURCE_DIR}/node/paintnode.cpp
0051     ${CMAKE_CURRENT_SOURCE_DIR}/node/rerolldicenode.cpp
0052     ${CMAKE_CURRENT_SOURCE_DIR}/node/scalaroperatornode.cpp
0053     ${CMAKE_CURRENT_SOURCE_DIR}/node/sortresult.cpp
0054     ${CMAKE_CURRENT_SOURCE_DIR}/node/startingnode.cpp
0055     ${CMAKE_CURRENT_SOURCE_DIR}/node/filternode.cpp
0056     ${CMAKE_CURRENT_SOURCE_DIR}/node/stringnode.cpp
0057     ${CMAKE_CURRENT_SOURCE_DIR}/node/ifnode.cpp
0058     ${CMAKE_CURRENT_SOURCE_DIR}/node/splitnode.cpp
0059     ${CMAKE_CURRENT_SOURCE_DIR}/node/groupnode.cpp
0060     ${CMAKE_CURRENT_SOURCE_DIR}/node/bind.cpp
0061     ${CMAKE_CURRENT_SOURCE_DIR}/node/occurencecountnode.cpp
0062     ${CMAKE_CURRENT_SOURCE_DIR}/node/uniquenode.cpp
0063     ${CMAKE_CURRENT_SOURCE_DIR}/highlightdice.cpp
0064     ${CMAKE_CURRENT_SOURCE_DIR}/node/variablenode.cpp
0065     ${CMAKE_CURRENT_SOURCE_DIR}/node/valueslistnode.cpp
0066     ${CMAKE_CURRENT_SOURCE_DIR}/node/repeaternode.cpp
0067     ${CMAKE_CURRENT_SOURCE_DIR}/node/switchcasenode.cpp
0068     ${CMAKE_CURRENT_SOURCE_DIR}/node/replacevaluenode.cpp
0069 )
0070 
0071 include(install_helper OPTIONAL RESULT_VARIABLE installFound)
0072 
0073 if(installFound STREQUAL "NOTFOUND")
0074   set(HAS_INSTALL OFF)
0075 else()
0076   set(HAS_INSTALL ON)
0077 endif()
0078 
0079 IF(STATIC_BUILD)
0080     set_target_properties(diceparser_static PROPERTIES OUTPUT_NAME diceparser CLEAN_DIRECT_OUTPUT 1)
0081     add_library(diceparser_static STATIC ${dice_sources} )
0082     target_include_directories(diceparser_static PRIVATE include)
0083     target_link_libraries(diceparser_static PUBLIC Qt6::Core Qt6::Gui Qt6::Svg)
0084     if(${HAS_INSTALL})
0085       rinstallLib(diceparser_static libraries)
0086     endif()
0087 endif()
0088 
0089 add_library(diceparser_shared SHARED ${dice_sources} ${dice_public_headers})
0090 set_target_properties(diceparser_shared PROPERTIES PUBLIC_HEADER "${public_header_widget}")
0091 target_compile_definitions(diceparser_shared PRIVATE DICEPARSER_LIBRARY)
0092 
0093 target_include_directories(diceparser_shared
0094   PRIVATE
0095     ${CMAKE_CURRENT_SOURCE_DIR}
0096     ${CMAKE_CURRENT_SOURCE_DIR}/include
0097     ${CMAKE_CURRENT_SOURCE_DIR}/node
0098     ${CMAKE_CURRENT_SOURCE_DIR}/result
0099   PUBLIC
0100     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0101     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
0102 
0103 
0104 target_link_libraries(diceparser_shared PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Svg)
0105 set_target_properties(diceparser_shared PROPERTIES VERSION ${PROJECT_VERSION})
0106 set_target_properties(diceparser_shared PROPERTIES SOVERSION 1)
0107 
0108 
0109 #include(GNUInstallDirs)
0110 
0111 
0112 configure_file(diceparser.pc.in diceparser.pc @ONLY)
0113 
0114 if(${HAS_INSTALL})
0115   rinstallLib(diceparser_shared libraries)
0116 else()
0117   install(TARGETS diceparser_shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
0118   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/diceparser.pc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
0119 endif()
0120 
0121 if(Qt${QT_VERSION_MAJOR}Qml_FOUND)
0122     message(STATUT "qml found")
0123     set(dice_header_qobject include/diceparser_qobject/diceparser_qobject_global.h include/diceparser_qobject/qmltypesregister.h include/diceparser_qobject/diceroller.h)
0124     set(dice_source_qobject qmltypesregister.cpp diceroller.cpp)
0125     set(CMAKE_AUTOMOC ON)
0126     set(CMAKE_AUTOUIC ON)
0127     set(CMAKE_AUTORCC ON)
0128     set(CMAKE_INCLUDE_CURRENT_DIR ON)
0129     add_library(diceparser_qobject SHARED ${dice_header_qobject} ${dice_source_qobject})
0130     set_target_properties(diceparser_qobject PROPERTIES PUBLIC_HEADER "${dice_header_qobject}")
0131     target_compile_definitions(diceparser_qobject PRIVATE DICEPARSER_QOBJECT_LIBRARY)
0132     target_link_libraries(diceparser_qobject PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Svg Qt${QT_VERSION_MAJOR}::Qml Qt${QT_VERSION_MAJOR}::Concurrent PRIVATE diceparser_shared)
0133     set_target_properties(diceparser_qobject PROPERTIES VERSION ${PROJECT_VERSION})
0134     set_target_properties(diceparser_qobject PROPERTIES SOVERSION 1)
0135 
0136     target_include_directories(diceparser_qobject
0137       PRIVATE
0138         ${CMAKE_CURRENT_SOURCE_DIR}
0139         ${CMAKE_CURRENT_SOURCE_DIR}/include
0140       PUBLIC
0141         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0142         $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
0143 
0144 
0145       if(${HAS_INSTALL})
0146         message(STATUT "Normal install " ${HAS_INSTALL})
0147         rinstallLib(diceparser_qobject libraries)
0148       else()
0149         message(STATUT "Degraded install" ${HAS_INSTALL})
0150         install(TARGETS diceparser_qobject LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
0151       endif()
0152 endif()
0153 
0154 
0155