Warning, /utilities/okteta/core/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 set(OKTETACORE_VERSION ${OKTETALIBS_LIB_VERSION})
0002 set(OKTETACORE_SO_VERSION ${OKTETALIBS_LIB_SOVERSION})
0003 
0004 okteta_add_library(Core NAMESPACE Okteta
0005     PUBLIC
0006         Qt5::Core
0007     PRIVATE
0008         KF5::I18n
0009     VERSION     ${OKTETACORE_VERSION}
0010     SOVERSION   ${OKTETACORE_SO_VERSION}
0011     ABIVERSION  ${OKTETALIBS_ABI_VERSION}
0012     NO_TARGET_NAMESPACE
0013     NO_VERSIONED_EXPORTED_TARGET_NAME
0014     NO_VERSIONED_INCLUDEDIR
0015     NO_VERSIONED_PACKAGE_NAME
0016 )
0017 
0018 target_compile_definitions(OktetaCore PRIVATE -DTRANSLATION_DOMAIN=\"liboktetacore\")
0019 
0020 ecm_qt_declare_logging_category(OktetaCore
0021     HEADER "logging.hpp"
0022     IDENTIFIER "LOG_OKTETA_CORE"
0023     CATEGORY_NAME "okteta.core"
0024     DESCRIPTION "Okteta Core library"
0025     EXPORT OKTETA
0026 )
0027 
0028 macro(OKTETACORE_ADD_SUBLIBRARY _subdir)
0029     okteta_add_sublibrary(Core NAMESPACE Okteta
0030         SUBDIR ${_subdir}
0031         ${ARGN}
0032     )
0033 endmacro()
0034 
0035 oktetacore_add_sublibrary(charcodecs
0036     PRIVATE
0037         CharCodec
0038         USASCIICharCodec
0039         EBCDIC1047CharCodec
0040         IBM874CharCodec
0041         JISX0201CharCodec
0042         TextCharCodec
0043 )
0044 
0045 oktetacore_add_sublibrary(valuecodecs
0046     PRIVATE
0047         BinaryByteCodec
0048         ValueCodec
0049         DecimalByteCodec
0050         HexadecimalByteCodec
0051         OctalByteCodec
0052 )
0053 
0054 oktetacore_add_sublibrary(piecetable
0055     PRIVATE
0056         PieceList
0057         PieceTable
0058         AbstractPieceTableChange
0059 #           FillPieceTableChange
0060         InsertPieceTableChange
0061         RemovePieceTableChange
0062         ReplacePieceTableChange
0063         SwapRangesPieceTableChange
0064         GroupPieceTableChange
0065         PieceTableChangehistory
0066         RevertablePiecetable
0067 )
0068 
0069 okteta_add_sublibrary(Core  NAMESPACE Okteta
0070     PUBLIC
0071         OktetaCore
0072         Range
0073         NumberRange
0074 
0075         Address
0076         AddressRange
0077         Size
0078         Byte
0079         AbstractByteArrayModel
0080         Versionable
0081         Bookmarkable
0082         ChangesDescribable
0083         ChangeHistory
0084 
0085         ByteArrayModel
0086         #FileByteArrayModel
0087         PieceTableByteArrayModel
0088 
0089         Character
0090         ArrayChangeMetrics
0091         ArrayChangeMetricsList
0092         ByteArrayChange
0093 
0094         Bookmark
0095         BookmarksConstIteratorAdapter # TODO: make private or move adapter class to iterator
0096         BookmarksConstIterator
0097 
0098         TextByteArrayAnalyzer
0099         ValueCodec
0100         CharCodec
0101 
0102     PRIVATE
0103         FileByteArrayModel
0104         FixedSizeByteArrayModel
0105 
0106         BookmarkListConstIteratorAdapter
0107         AddressRangeList
0108         BookmarkList
0109 
0110 )
0111 
0112 okteta_add_cmakeconfig(Core NAMESPACE Okteta
0113     DEPS
0114         Qt5Core ${Qt5_VERSION}
0115 )
0116 
0117 okteta_add_qmakeconfig(Core NAMESPACE Okteta
0118     DEPS core
0119 )
0120 
0121 okteta_add_pkgconfig(Core NAMESPACE Okteta
0122     DEPS Qt5Core
0123     DESCRIPTION "Okteta Core"
0124 )
0125 
0126 
0127 if(BUILD_TESTING)
0128     #don't compile sources twice by using object libraries
0129     #add_library( oktetacore_objs OBJECT ${oktetacore_LIB_SRCS} )
0130     #target_include_directories( oktetacore_objs PUBLIC $<TARGET_PROPERTY:Qt5::Core,INTERFACE_INCLUDE_DIRECTORIES> )
0131     #set( oktetacore_LIB_OBJS $<TARGET_OBJECTS:oktetacore_objs>)
0132 
0133     # compile flags don't get set for object libraries, since cannot link to target
0134     #TODO: find out how to properly use targets for object libraries
0135     add_library( testoktetacore STATIC)
0136     get_property(oktetacore_LIB_OBJS TARGET OktetaCore PROPERTY SOURCES)
0137     target_sources(testoktetacore PRIVATE ${oktetacore_LIB_OBJS})
0138     # Configure export macros to be setup as with a static lib
0139     # as the source files are reused for static testoktetacore
0140     # Saves doing a separate export header.
0141     target_compile_definitions(testoktetacore
0142         PUBLIC
0143             OKTETACORE_STATICLIB
0144     )
0145     target_include_directories(testoktetacore
0146         PUBLIC
0147             ${CMAKE_CURRENT_BINARY_DIR}
0148     )
0149     target_link_libraries(testoktetacore
0150         PUBLIC
0151             Qt5::Core
0152         PRIVATE
0153             KF5::I18n
0154     )
0155 
0156     add_subdirectory(piecetable/tests)
0157     add_subdirectory(tests)
0158 endif()