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