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

0001 set(OKTETAKASTENCONTROLLERS_VERSION ${OKTETAKASTEN_LIB_VERSION})
0002 set(OKTETAKASTENCONTROLLERS_SO_VERSION ${OKTETAKASTEN_LIB_SOVERSION})
0003 
0004 set( LIBFRAMESPRINT_REL_DIR ../../libs/framesprint )
0005 
0006 # create static libraries for sharing between unit tests and actual library product
0007 # This means we don't have to compile the sources twice
0008 
0009 add_library(poddecoder-typeeditors STATIC)
0010 set_target_properties(poddecoder-typeeditors PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
0011 target_link_libraries(poddecoder-typeeditors
0012     PUBLIC
0013         OktetaGui
0014     PRIVATE
0015         KF5::Completion
0016 )
0017 
0018 add_library(structureview-tested-srcs STATIC)
0019 set_target_properties(structureview-tested-srcs PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
0020 target_link_libraries(structureview-tested-srcs
0021     PUBLIC
0022         OktetaCore
0023         KF5::ConfigGui
0024         KF5::I18n
0025         KF5::Service
0026         Qt5::Script
0027         Qt5::Xml
0028         Qt5::Widgets
0029     PRIVATE
0030         KF5::Completion
0031         KF5::ConfigWidgets
0032 )
0033 
0034 ecm_qt_declare_logging_category(structureview-tested-srcs
0035     HEADER "structureslogging.hpp"
0036     IDENTIFIER "LOG_KASTEN_OKTETA_CONTROLLERS_STRUCTURES"
0037     CATEGORY_NAME "kasten.okteta.controllers.structures"
0038     DESCRIPTION "Okteta Structures tool"
0039     EXPORT OKTETA
0040 )
0041 
0042 okteta_add_library(Controllers NAMESPACE Okteta Kasten
0043     PUBLIC
0044         OktetaKastenGui
0045         OktetaKastenCore
0046         KastenGui
0047         KastenCore
0048     PRIVATE
0049         structureview-tested-srcs
0050         poddecoder-typeeditors
0051         KF5::NewStuffWidgets
0052         KF5::I18n
0053         KF5::ConfigWidgets
0054         KF5::ItemViews
0055         KF5::Completion
0056         Qt5::PrintSupport
0057         Qt5::Script
0058 #         Qt5::Test # QAbstractItemModelTester
0059     VERSION     ${OKTETAKASTENCONTROLLERS_VERSION}
0060     SOVERSION   ${OKTETAKASTENCONTROLLERS_SO_VERSION}
0061     ABIVERSION  ${OKTETAKASTEN_ABI_VERSION} ${KASTEN_ABI_VERSION}
0062     NO_VERSIONED_INCLUDEDIR
0063     NO_VERSIONED_PACKAGE_NAME
0064     REVERSE_NAMESPACE_INCLUDEDIR
0065     REVERSE_NAMESPACE_LIB
0066     NO_TARGET_NAMESPACE
0067     NO_VERSIONED_EXPORTED_TARGET_NAME
0068 )
0069 
0070 target_compile_definitions(OktetaKastenControllers PRIVATE -DTRANSLATION_DOMAIN=\"liboktetakasten\")
0071 
0072 ecm_qt_declare_logging_category(OktetaKastenControllers
0073     HEADER "checksumlogging.hpp"
0074     IDENTIFIER "LOG_OKTETA_KASTEN_CONTROLLER_CHECKSUM"
0075     CATEGORY_NAME "kasten.okteta.controllers.checksum"
0076     DESCRIPTION "Okteta Checksum tool"
0077     EXPORT OKTETA
0078 )
0079 
0080 macro(OKTETAKASTENCONTROLLERS_ADD_SUBLIBRARY _subdir)
0081     okteta_add_sublibrary(Controllers NAMESPACE Okteta Kasten
0082         REVERSE_NAMESPACE_INCLUDEDIR
0083         SUBDIR ${_subdir}
0084         ${ARGN}
0085     )
0086 endmacro()
0087 
0088 macro(OKTETAKASTENCONTROLLERS_ADD_SUBLIBRARY_STRUCTURES_TESTED _subdir)
0089     okteta_add_sublibrary(Controllers NAMESPACE Okteta Kasten
0090         REVERSE_NAMESPACE_INCLUDEDIR
0091         LIBRARY structureview-tested-srcs
0092         SUBDIR ${_subdir}
0093         ${ARGN}
0094     )
0095 endmacro()
0096 
0097 
0098 oktetakastencontrollers_add_sublibrary(libconfigentries
0099     BUILD_INCLUDEDIR
0100     PRIVATE
0101         AddressComboBoxCodingConfigEntry
0102         ByteArrayCodingConfigEntry
0103         ByteArrayComboBoxCodingConfigEntry
0104         CaseSensitivityConfigEntry
0105         DirectionConfigEntry
0106         EndiannessConfigEntry
0107         FindDirectionConfigEntry
0108 )
0109 
0110 oktetakastencontrollers_add_sublibrary(document/info
0111     PUBLIC
0112         DocumentInfoToolFactory
0113         DocumentInfoToolViewFactory
0114     PRIVATE
0115         ByteArrayModelIoDevice
0116         DocumentInfoView
0117         DocumentInfoTool
0118         DocumentInfoToolView
0119 )
0120 
0121 # unused, TODO: remove?
0122 if (FALSE)
0123 oktetakastencontrollers_add_sublibrary(document/overwriteonly
0124     PUBLIC
0125         OverwriteOnlyControllerFactory
0126     PRIVATE
0127         OverwriteOnlyController
0128 )
0129 endif()
0130 
0131 oktetakastencontrollers_add_sublibrary(view/overwritemode
0132     PUBLIC
0133         OverwriteModeControllerFactory
0134     PRIVATE
0135         OverwriteModeController
0136 )
0137 oktetakastencontrollers_add_sublibrary(view/info
0138     PUBLIC
0139         InfoToolFactory
0140         InfoToolViewFactory
0141     PRIVATE
0142         CreateStatisticJob
0143         StatisticDisplayModel
0144         StatisticTableModel
0145         InfoView
0146         InfoTool
0147         InfoToolView
0148     KCFG
0149         infoviewsettings.kcfgc
0150 )
0151 
0152 oktetakastencontrollers_add_sublibrary(view/stringsextract
0153     PUBLIC
0154         StringsExtractToolFactory
0155         StringsExtractToolViewFactory
0156     PRIVATE
0157         ExtractStringsJob
0158         ContainedStringTableModel
0159         StringsExtractView
0160         ContainedString
0161         StringsExtractTool
0162         StringsExtractToolView
0163 )
0164 
0165 oktetakastencontrollers_add_sublibrary(view/libbytearraychecksum
0166     BUILD_INCLUDEDIR
0167     PRIVATE
0168         AbstractByteArrayChecksumAlgorithm
0169         AbstractByteArrayChecksumParameterSet
0170         AbstractByteArrayChecksumParameterSetEdit
0171         ByteArrayChecksumAlgorithmFactory
0172         ByteArrayChecksumParameterSetEditFactory
0173 )
0174 
0175 oktetakastencontrollers_add_sublibrary(view/libbytearraychecksum/algorithm
0176     PRIVATE
0177         Crc32ByteArrayChecksumAlgorithm
0178         Crc64ByteArrayChecksumAlgorithm
0179         Adler32ByteArrayChecksumAlgorithm
0180         ModSum8ByteArrayChecksumAlgorithm
0181         ModSum16ByteArrayChecksumAlgorithm
0182         ModSum32ByteArrayChecksumAlgorithm
0183         ModSum64ByteArrayChecksumAlgorithm
0184         QCryptographicByteArrayChecksumAlgorithm
0185 ## NEWCHECKSUM(start)
0186 ## Here add the names of your classes of your checksum algorithm,
0187 ## e.g.
0188 ##         MyByteArrayChecksumAlgorithm
0189 ## NEWCHECKSUM(end)
0190         NoByteArrayChecksumParameterSet
0191         NoByteArrayChecksumParameterSetEdit
0192         ModSumByteArrayChecksumParameterSet
0193         ModSumByteArrayChecksumParameterSetEdit
0194         Crc64ByteArrayChecksumParameterSet
0195         Crc64ByteArrayChecksumParameterSetEdit
0196 ## NEWCHECKSUMPARAMETERSET(start)
0197 ## Here add the names of your classes of your checksum parameter set and
0198 ## of the widget to edit the checksum parameter set,
0199 ## e.g.
0200 ##         MyByteArrayChecksumParameterSet
0201 ##         MyByteArrayChecksumParameterSetEdit
0202 ## NEWCHECKSUMPARAMETERSET(end)
0203 )
0204 
0205 oktetakastencontrollers_add_sublibrary(view/checksum
0206     PUBLIC
0207         ChecksumToolFactory
0208         ChecksumToolViewFactory
0209     PRIVATE
0210         ChecksumCalculateJob
0211         ChecksumView
0212         ChecksumTool
0213         ChecksumToolView
0214 )
0215 
0216 oktetakastencontrollers_add_sublibrary(view/libfinddialog
0217     BUILD_INCLUDEDIR
0218     PRIVATE
0219         AbstractFindDialog
0220         FindDirection
0221 )
0222 
0223 oktetakastencontrollers_add_sublibrary(view/libbytearraysearch
0224     BUILD_INCLUDEDIR
0225     PRIVATE
0226         ByteArraySearchJob
0227         ByteArraySearchUtils
0228 )
0229 
0230 oktetakastencontrollers_add_sublibrary(view/poddecoder/typecodecs
0231     PRIVATE
0232         Binary8Codec
0233         Octal8Codec
0234         Hexadecimal8Codec
0235         UInt8Codec
0236         UInt16Codec
0237         UInt32Codec
0238         UInt64Codec
0239         SInt8Codec
0240         SInt16Codec
0241         SInt32Codec
0242         SInt64Codec
0243         Float32Codec
0244         Float64Codec
0245         Char8Codec
0246         Utf8Codec
0247         Utf16Codec
0248 )
0249 
0250 oktetakastencontrollers_add_sublibrary(view/poddecoder
0251     PUBLIC
0252         PODDecoderToolFactory
0253         PODDecoderToolViewFactory
0254     PRIVATE
0255         PODData
0256         PODDisplayModel
0257         PODTableModel
0258         PODDelegate
0259         PODTableView
0260         PODDecoderTool
0261         PODDecoderToolView
0262 )
0263 
0264 oktetakastencontrollers_add_sublibrary(view/poddecoder/types
0265     LIBRARY poddecoder-typeeditors
0266     PRIVATE
0267         Char8
0268 )
0269 
0270 oktetakastencontrollers_add_sublibrary(view/poddecoder/typeeditors
0271     LIBRARY poddecoder-typeeditors
0272     PRIVATE
0273         AbstractValue8Editor
0274         Binary8Editor
0275         Octal8Editor
0276         Hexadecimal8Editor
0277         UIntSpinBox
0278         SIntSpinBox
0279         Float32Editor
0280         Float64Editor
0281         Char8Editor
0282         Char8StringParser
0283         Char8StringValidator
0284         Utf8Editor
0285         Utf16Editor
0286 )
0287 
0288 oktetakastencontrollers_add_sublibrary(view/bytetable
0289     PUBLIC
0290         ByteTableToolFactory
0291         ByteTableToolViewFactory
0292     PRIVATE
0293         ByteTableModel
0294         ByteTableView
0295         ByteTableTool
0296         ByteTableToolView
0297     KCFG
0298         bytetableviewsettings.kcfgc
0299 )
0300 
0301 oktetakastencontrollers_add_sublibrary(view/search
0302     PUBLIC
0303         SearchControllerFactory
0304     PRIVATE
0305         SearchUserQueryable
0306         SearchDialog
0307         SearchTool
0308         SearchController
0309 )
0310 
0311 oktetakastencontrollers_add_sublibrary(view/replace
0312     PUBLIC
0313         ReplaceControllerFactory
0314     PRIVATE
0315         ReplaceUserQueryable
0316         ReplaceController
0317         ReplaceDialog
0318         ReplacePrompt
0319         ReplaceJob
0320         ReplaceTool
0321 )
0322 
0323 oktetakastencontrollers_add_sublibrary(view/libbytearrayfilter
0324     BUILD_INCLUDEDIR
0325     PRIVATE
0326         AbstractByteArrayFilter
0327         AbstractByteArrayFilterParameterSet
0328         AbstractByteArrayFilterParameterSetEdit
0329         ByteArrayFilterFactory
0330         ByteArrayFilterParameterSetEditFactory
0331 )
0332 
0333 oktetakastencontrollers_add_sublibrary(view/libbytearrayfilter/filter
0334     PRIVATE
0335         NoByteArrayFilterParameterSet
0336         OperandByteArrayFilterParameterSet
0337         ReverseByteArrayFilterParameterSet
0338         RotateByteArrayFilterParameterSet
0339 ## NEWFILTERPARAMETERSET(start)
0340 ## Here add the names of your classes of your filter parameter set,
0341 ## e.g.
0342 ##         MyByteArrayFilterParameterSet
0343 ## NEWFILTERPARAMETERSET(end)
0344         AndByteArrayFilter
0345         OrByteArrayFilter
0346         XorByteArrayFilter
0347         InvertByteArrayFilter
0348         ReverseByteArrayFilter
0349         RotateByteArrayFilter
0350         ShiftByteArrayFilter
0351 ## NEWFILTER(start)
0352 ## Here add the names of your classes of your filter,
0353 ## e.g.
0354 ##         MyByteArrayFilter
0355 ## NEWFILTER(end)
0356         NoByteArrayFilterParameterSetedit
0357         OperandByteArrayFilterParameterSetedit
0358         ReverseByteArrayFilterParameterSetedit
0359         RotateByteArrayFilterParameterSetedit
0360 ## NEWFILTERPARAMETERSET(start)
0361 ## Here add the names of your classes of your widget to edit the filter parameter set,
0362 ## e.g.
0363 ##         MyByteArrayFilterParameterSetedit
0364 ## NEWFILTERPARAMETERSET(end)
0365 )
0366 oktetakastencontrollers_add_sublibrary(view/filter
0367     PUBLIC
0368         FilterToolFactory
0369         FilterToolViewFactory
0370     PRIVATE
0371         FilterJob
0372         FilterView
0373         FilterTool
0374         FilterToolView
0375 )
0376 
0377 oktetakastencontrollers_add_sublibrary(view/charsetconversion
0378     PUBLIC
0379         CharsetConversionToolFactory
0380         CharsetConversionToolViewFactory
0381     PRIVATE
0382         CharsetConversionJob
0383         CharsetConversionView
0384         CharsetConversionTool
0385         CharsetConversionToolView
0386 )
0387 
0388 oktetakastencontrollers_add_sublibrary(view/gotooffset
0389     PUBLIC
0390         GotoOffsetControllerFactory
0391     PRIVATE
0392         GotoOffsetTool
0393         GotoOffsetView
0394         GotoOffsetToolView
0395         GotoOffsetController
0396 )
0397 
0398 oktetakastencontrollers_add_sublibrary(view/selectrange
0399     PUBLIC
0400         SelectRangeControllerFactory
0401     PRIVATE
0402         SelectRangeTool
0403         SelectRangeView
0404         SelectRangeToolView
0405         SelectRangeController
0406 )
0407 
0408 oktetakastencontrollers_add_sublibrary(view/bookmarks
0409     PUBLIC
0410         BookmarksControllerFactory
0411     PRIVATE
0412         BookmarkEditPopup
0413         BookmarksController
0414 )
0415 
0416 oktetakastencontrollers_add_sublibrary(view/bookmarks
0417     PUBLIC
0418         BookmarksToolFactory
0419         BookmarksToolViewFactory
0420     PRIVATE
0421         BookmarkListModel
0422         BookmarksView
0423         BookmarksTool
0424         BookmarksToolView
0425 )
0426 
0427 
0428 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/datatypes
0429     PRIVATE
0430         TopLevelDataInformation
0431         DataInformation
0432         DataInformationbase
0433         DummyDataInformation
0434         DataInformationwithchildren
0435         StructureDataInformation
0436         TaggedUnionDataInformation
0437         UnionDataInformation
0438         PrimitiveFactory
0439         PrimitiveDataType
0440 )
0441 
0442 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/datatypes/array
0443     PRIVATE
0444         ArrayDataInformation
0445         AbstractArrayData
0446         ComplexArrayData
0447         PrimitiveArrayData
0448 )
0449 
0450 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/datatypes/primitive
0451     PRIVATE
0452         PointerDataInformation
0453         CharDataInformation
0454         DoubleDataInformation
0455         FloatDataInformation
0456         SIntDataInformation
0457         UIntDataInformation
0458         BoolDataInformation
0459         FlagDataInformation
0460         PrimitiveDataInformation
0461         BasicPrimitiveDataInformation
0462         EnumDataInformation
0463         EnumDefinition
0464 )
0465 
0466 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/datatypes/primitive/bitfield
0467     PRIVATE
0468         AbstractBitfieldDataInformation
0469         BoolBitfieldDataInformation
0470         SignedBitfieldDataInformation
0471         UnsignedBitfieldDataInformation
0472 )
0473 
0474 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/datatypes/strings
0475     PRIVATE
0476         StringDataInformation
0477         StringData
0478         AsciiStringData
0479         Latin1StringData
0480         Utf8StringData
0481         Utf16StringData
0482         Utf32StringData
0483         EbcdicStringData
0484 )
0485 oktetakastencontrollers_add_sublibrary_structures_tested(../../core/charcodecs
0486     PRIVATE
0487         Ebcdic1047CharCodec
0488 )
0489 
0490 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/script
0491     PRIVATE
0492         ScriptEngineInitializer
0493         ScriptHandler
0494         ScriptHandlerInfo
0495         ScriptLogger
0496         ScriptLoggerView
0497         SafeReference
0498 )
0499 
0500 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/script/classes
0501     PRIVATE
0502         DefaultScriptClass
0503         ArrayScriptClass
0504         PrimitiveScriptClass
0505         EnumScriptClass
0506         PointerScriptClass
0507         BitfieldScriptClass
0508         StringScriptClass
0509         StructUnionScriptClass
0510 )
0511 
0512 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/parsers
0513     PRIVATE
0514         AbstractStructureParser
0515         OsdParser
0516         ScriptFileParser
0517         ScriptValueConverter
0518         DataInformationFactory
0519         ParserUtils
0520 )
0521 
0522 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures/settings
0523     KCFG
0524         structureviewpreferences.kcfgc
0525 )
0526 
0527 oktetakastencontrollers_add_sublibrary_structures_tested(view/structures
0528     PRIVATE
0529         AllPrimitiveTypes
0530 )
0531 
0532 #these source files are not needed by the static library for unit tests, therefore keep them separate
0533 oktetakastencontrollers_add_sublibrary(view/structures/settings
0534     PRIVATE
0535         StructureAddRemoveWidget
0536         StructureItemDelegate
0537         StructureEnabledList
0538         StructuresSelectionModel
0539         StructuresSelectionSortFilterProxyModel
0540         StructuresSelectionDialog
0541         StructureViewSettingsWidget
0542         StructuresManagerView
0543         StructuresSelector
0544         AboutStructureDialog
0545         LicenseDialog
0546     UI structureviewsettingswidget.ui
0547 )
0548 oktetakastencontrollers_add_sublibrary(view/structures
0549     PUBLIC
0550         StructuresToolFactory
0551         StructuresToolViewFactory
0552     PRIVATE
0553         StructuresManager
0554         StructuresTool
0555         StructureTreeModel
0556         StructureMetaData
0557         StructureDefinitionFile
0558         StructureView
0559         StructuresToolView
0560         StructureViewItemDelegate
0561 )
0562 
0563 oktetakastencontrollers_add_sublibrary(${LIBFRAMESPRINT_REL_DIR}
0564     BUILD_INCLUDEDIR
0565     PRIVATE
0566         AbstractFrameRenderer
0567         FramesToPaperPrinter
0568         HeaderFooterFrameRenderer
0569 )
0570 
0571 oktetakastencontrollers_add_sublibrary(view/print
0572     PUBLIC
0573         PrintControllerFactory
0574     PRIVATE
0575         PrintTool
0576         PrintJob
0577         AbstractColumnFrameRenderer
0578         PrintColumnStylist
0579         ByteArrayFrameRenderer
0580         PrintDialog
0581         PrintController
0582 )
0583 set_source_files_properties(view/print/printtool.cpp PROPERTIES
0584     COMPILE_FLAGS -DOKTETA_VERSION=\\\"${Okteta_VERSION}\\\"
0585 )
0586 
0587 
0588 oktetakastencontrollers_add_sublibrary(view/viewconfig
0589     PUBLIC
0590         ViewConfigControllerFactory
0591     PRIVATE
0592         BytesPerLineDialog
0593         BytesPerGroupDialog
0594         ViewConfigController
0595 )
0596 
0597 oktetakastencontrollers_add_sublibrary(view/viewstatus
0598     PUBLIC
0599         ViewStatusControllerFactory
0600     PRIVATE
0601         ViewStatusController
0602 )
0603 
0604 oktetakastencontrollers_add_sublibrary(view/viewmode
0605     PUBLIC
0606         ViewModeControllerFactory
0607     PRIVATE
0608         ViewModeController
0609 )
0610 
0611 oktetakastencontrollers_add_sublibrary(view/viewprofiles
0612     PUBLIC
0613         ViewProfilesManageControllerFactory
0614         # TODO: two controllers in one subdir
0615         ViewProfileControllerFactory
0616     PRIVATE
0617         ViewProfileEdit
0618         ViewProfileEditDialog
0619         ViewProfileTableModel
0620 
0621         ViewProfilesManageDialog
0622 
0623         ViewProfileController
0624         ViewProfilesManageController
0625 )
0626 
0627 oktetakastencontrollers_add_sublibrary(view/viewcontextmenu
0628     PUBLIC
0629         ViewContextMenuControllerFactory
0630     PRIVATE
0631         ViewContextMenuController
0632 )
0633 
0634 oktetakastencontrollers_add_sublibrary(utils
0635     BUILD_INCLUDEDIR
0636     PRIVATE
0637         LabelledToolBarWidget
0638 )
0639 
0640 if(BUILD_TESTING)
0641     # poddecoder typeeditors unit tests
0642     ecm_add_test(
0643         view/poddecoder/typeeditors/char8stringvalidator.cpp
0644         view/poddecoder/typeeditors/char8stringparser.cpp
0645         test/char8stringvalidatortest.cpp
0646 
0647         TEST_NAME char8stringvalidatortest
0648         LINK_LIBRARIES
0649             OktetaCore
0650             Qt5::Gui
0651             Qt5::Test
0652     )
0653     target_include_directories(char8stringvalidatortest
0654         PUBLIC
0655             view/poddecoder/typeeditors
0656     )
0657 
0658     #structures view unit tests
0659     ecm_add_tests(
0660         test/primitivearraytest.cpp
0661         test/arraydatainformationtest.cpp
0662         test/basicdatainformationtest.cpp
0663         test/primitivedatainformationtest.cpp
0664         test/scriptclassestest.cpp
0665         test/uniondatainformationtest.cpp
0666         test/allprimitivetypestest.cpp
0667         test/scriptvalueconvertertest.cpp
0668         test/osdparsertest.cpp
0669         test/commonparsertest.cpp
0670         test/jsparsertest.cpp
0671         test/customtostringtest.cpp
0672         test/locktooffsettest.cpp
0673 
0674         NAME_PREFIX structures-
0675         LINK_LIBRARIES structureview-tested-srcs Qt5::Test poddecoder-typeeditors
0676     )
0677 
0678     # remove useless default definition of QT_TESTCASE_BUILDDIR in interface from imported target Qt5::Test
0679     get_target_property(qttestdefs Qt5::Test INTERFACE_COMPILE_DEFINITIONS)
0680     list(FILTER qttestdefs EXCLUDE REGEX [[^QT_TESTCASE_BUILDDIR=]])
0681     set_property(TARGET Qt5::Test PROPERTY INTERFACE_COMPILE_DEFINITIONS ${qttestdefs})
0682     # set the definition as needed for our tests
0683     target_compile_definitions(customtostringtest PRIVATE QT_TESTCASE_BUILDDIR="${CMAKE_CURRENT_BINARY_DIR}")
0684     target_compile_definitions(jsparsertest       PRIVATE QT_TESTCASE_BUILDDIR="${CMAKE_CURRENT_BINARY_DIR}")
0685     # TODO: still fragile once __FILE__ is neither absolute or full relative path to this build dir
0686     # look into using custom code intead of simple QFINDTESTDATA usage
0687 
0688     # search tool unit tests
0689     ecm_add_test(
0690         view/libbytearraysearch/bytearraysearchutils.cpp
0691         view/libbytearraysearch/bytearraysearchjob.cpp
0692         view/search/searchtool.cpp
0693         test/searchtooltest.cpp
0694 
0695         TEST_NAME searchtooltest
0696         LINK_LIBRARIES
0697             OktetaKastenGui
0698             OktetaKastenCore
0699             KF5::I18n
0700             Qt5::Test
0701     )
0702     target_include_directories(searchtooltest
0703         PUBLIC
0704             libconfigentries
0705             view/libfinddialog
0706             view/libbytearraysearch
0707     )
0708 
0709     #replace tool unit tests
0710     ecm_add_test(
0711         view/libbytearraysearch/bytearraysearchjob.cpp
0712         view/replace/replacejob.cpp
0713         test/replacejobtest.cpp
0714 
0715         TEST_NAME replacejobtest
0716         LINK_LIBRARIES
0717             OktetaKastenGui
0718             OktetaKastenCore
0719             Qt5::Test
0720     )
0721     target_include_directories(replacejobtest
0722         PUBLIC
0723             view/libfinddialog
0724             view/libbytearraysearch
0725     )
0726 endif()
0727 
0728 install(FILES view/structures/kns/okteta-structures.knsrc  DESTINATION ${KDE_INSTALL_KNSRCDIR})
0729 
0730 set( elf_structure_FILES
0731     view/structures/examples/okteta/structures/elf/metadata.desktop
0732     view/structures/examples/okteta/structures/elf/main.osd
0733 )
0734 install( FILES ${elf_structure_FILES}  DESTINATION  ${KDE_INSTALL_DATADIR}/okteta/structures/elf )
0735 
0736 set( png_structure_FILES
0737     view/structures/examples/okteta/structures/png/metadata.desktop
0738     view/structures/examples/okteta/structures/png/main.osd
0739 )
0740 install( FILES ${png_structure_FILES}  DESTINATION  ${KDE_INSTALL_DATADIR}/okteta/structures/png )
0741 install( FILES view/structures/examples/okteta/structures/uuid.js  DESTINATION  ${KDE_INSTALL_DATADIR}/okteta/structures/ )
0742 install( FILES view/structures/settings/structureviewpreferences.kcfg  DESTINATION  ${KDE_INSTALL_KCFGDIR} )
0743 
0744 configure_file( view/structures/struct2osd.in ${CMAKE_CURRENT_BINARY_DIR}/struct2osd @ONLY )
0745 install( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/struct2osd DESTINATION ${KDE_INSTALL_BINDIR} )
0746 install( FILES view/structures/gccxml-to-osd.xsl DESTINATION ${KDE_INSTALL_DATADIR}/okteta/structures/ )
0747 
0748 okteta_add_cmakeconfig(Controllers NAMESPACE Okteta Kasten
0749     DEPS
0750         OktetaKastenGui
0751 )
0752 
0753 
0754 if( KASTEN_BUILD_INTERNAL_TEMPLATES )
0755 
0756 add_library(OktetaKastenControllersTemplates  STATIC)
0757 okteta_add_sublibrary(ControllersTemplates NAMESPACE Okteta Kasten
0758     SUBDIR view/libbytearrayfilter/filter/template
0759     PRIVATE
0760         Template_ByteArrayFilter
0761         Template_ByteArrayFilterParameterSet
0762         Template_ByteArrayFilterParameterSetEdit
0763 )
0764 okteta_add_sublibrary(ControllersTemplates NAMESPACE Okteta Kasten
0765     SUBDIR view/libbytearraychecksum/algorithm/template
0766     PRIVATE
0767         Template_ByteArrayCheckSumAlgorithm
0768         Template_ByteArrayChecksumParameterSet
0769         Template_ByteArrayChecksumParameterSetEdit
0770 )
0771 
0772 target_include_directories(OktetaKastenControllersTemplates
0773     PRIVATE
0774         view/libbytearrayfilter
0775         view/libbytearrayfilter/filter
0776         view/libbytearraychecksum
0777         view/libbytearraychecksum/algorithm
0778 )
0779 # Configure export macros to be setup as with a static lib
0780 # as the source files are reused for static OktetaKastenControllersTemplates
0781 # Saves doing a separate export header.
0782 target_compile_definitions(OktetaKastenControllersTemplates
0783     PUBLIC
0784         OKTETAKASTENCONTROLLERS_STATICLIB
0785 )
0786 target_link_libraries(OktetaKastenControllersTemplates
0787     PUBLIC
0788         OktetaCore
0789         Qt5::Widgets
0790     PRIVATE
0791         KF5::I18n
0792 )
0793 
0794 endif()