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