[Ctk-developers] [mitk-users] Moving BlueBerry Framework from MITK towards CTK making it independant of the massive MITK setup
Andras Lasso
lasso at queensu.ca
Sat Jan 23 19:32:40 UTC 2021
3D Slicer relies on CTK and we regularly make fixes and improvements. We do not use the plugin framework, so we can tolerate any changes to it, as long as we can keep it disabled and does not break the build of CTK.
Our slight preference would be to move the plugin framework out of CTK, just to keep CTK smaller and more focused. But since all these changes heavily impact MITK and nobody else has been spoken up, you need to agree in the strategy with Marco.
Andras
From: Ctk-developers <ctk-developers-bounces at public.kitware.com> On Behalf Of Ramazan Ergüder Bekrek
Sent: Saturday, January 23, 2021 12:07 PM
To: Nolden, Marco <m.nolden at dkfz-heidelberg.de>; mitk-users <mitk-users at lists.sourceforge.net>; ctk-developers <ctk-developers at public.kitware.com>
Subject: Re: [Ctk-developers] [mitk-users] Moving BlueBerry Framework from MITK towards CTK making it independant of the massive MITK setup
Can someone give some insight here please? I have the impression either everybody is sleeping because of Corona or people are busy.... :D
https://github.com/al-sabr/CTK/commits/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455734372%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=2qt997ToqFPaZ2qBI74JQtQRZjE%2BejeqpsrjyOGgNoo%3D&reserved=0>
23.01.2021, 18:05, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
Ok it seems that those errors had to do with CMake flags I didn't included from ITK. Now that I've cleared that out there's other weird compilation errors that I don't get because I don't have that much C++ knowledge.
G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(42,24): error C2079: 'Observer' uses undefined class 'itk::ITKCommon_HIDDEN' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(44,1): error C2059: syntax error: 'public' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(49,3): error C2143: syntax error: missing ';' before '{' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(49,3): error C2447: '{': missing function header (old-style formal list?) [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(50,20): error C2588: '::~Observer': illegal global destructor [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(50,12): error C2575: 'Observer': only member functions and bases can be virtual [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(50,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(50,12): error C2365: 'itk::Observer': redefinition; previous definition was 'data variable' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(56,1): error C2653: 'Observer': is not a class or namespace name [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(56,12): error C2523: '<Unknown>::~Observer': destructor tag mismatch [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(57,1): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(58,10): error C2065: 'm_Event': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(58,17): error C2541: 'delete': cannot delete objects that are not pointers [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(61,24): error C2079: 'SubjectImplementation' uses undefined class 'ITKCommon_HIDDEN' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(63,1): error C2059: syntax error: 'public' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(64,27): error C2143: syntax error: missing ';' before '{' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(64,27): error C2447: '{': missing function header (old-style formal list?) [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(65,25): error C2588: '::~SubjectImplementation': illegal global destructor [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(65,27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(65,4): error C2365: 'SubjectImplementation': redefinition; previous definition was 'data variable' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(68,33): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(68,33): error C2143: syntax error: missing ',' before '&' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(71,33): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(71,33): error C2143: syntax error: missing ',' before '&' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1>G:\programming\cplusplus\CTK\Libs\mbilog\itkObject.cxx(71,62): error C2270: 'AddObserver': modifiers not allowed on nonmember functions [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
22.01.2021, 23:09, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
I've past beyond the last compilation error with new ones:
1> mitkException.cpp
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkException.cpp(43,26): error C2247: 'itk::ExceptionObject::GetDescription' not accessible because 'mitk::Exception' uses 'private' to inherit from 'itk::ExceptionObject' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkExceptionObject.h(111): message : see declaration of 'itk::ExceptionObject::GetDescription' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkException.h(48): message : see declaration of 'mitk::Exception' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkExceptionObject.h(49): message : see declaration of 'itk::ExceptionObject' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> mitkLog.cpp
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkExceptionMacros.h(20,1): warning C4005: 'ITK_LOCATION': macro redefinition [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkMacro.h(479): message : see previous definition of 'ITK_LOCATION' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(40,3): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(42,23): error C3861: 'GetCurrentThreadId': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(50,34): error C3861: 'GetCurrentThreadId': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(64,39): error C3861: 'GetCurrentThreadId': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(70,3): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(99,5): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(109,5): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(119,5): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(128,7): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\mitkLog.cpp(135,7): error C2065: 'logMutex': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> itkSimpleFastMutexLock.cxx
1> itkSimpleFastMutexLockNoThreads.cxx
1> itkSimpleFastMutexLockPThreads.cxx
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(35,3): error C2065: 'pthread_mutexattr_t': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(35,23): error C2146: syntax error: missing ';' before identifier 'mta' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(35,23): error C2065: 'mta': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(36,27): error C2065: 'mta': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(36,3): error C3861: 'pthread_mutexattr_init': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(37,30): error C2065: 'mta': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(37,35): error C2065: 'PTHREAD_MUTEX_RECURSIVE': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(37,3): error C3861: 'pthread_mutexattr_settype': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(38,43): error C2065: 'mta': undeclared identifier [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(38,3): error C3861: 'pthread_mutex_init': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(44,3): error C3861: 'pthread_mutex_destroy': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(51,3): error C3861: 'pthread_mutex_lock': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(58,30): error C3861: 'pthread_mutex_trylock': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(58,27): error C2789: 'lockCaptured': an object of const-qualified type must be initialized [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(58): message : see declaration of 'lockCaptured' [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockPThreads.cxx(71,3): error C3861: 'pthread_mutex_unlock': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> itkSimpleFastMutexLockWinThreads.cxx
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockWinThreads.cxx(36,3): error C3861: 'InitializeCriticalSection': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockWinThreads.cxx(42,3): error C3861: 'DeleteCriticalSection': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockWinThreads.cxx(49,3): error C3861: 'EnterCriticalSection': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockWinThreads.cxx(56,29): error C3861: 'TryEnterCriticalSection': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkSimpleFastMutexLockWinThreads.cxx(69,3): error C3861: 'LeaveCriticalSection': identifier not found [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
22.01.2021, 15:43, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
Hi again Marco,
I am almost at the last stage for compiling the external dependencies like ITK headers and MITK but somehow I end up with many compilation errors.
1> G:\programming\cplusplus\CTK\Libs\mbilog\itkExceptionObject.h(304,1): error C2447: '{': missing function header (old-style formal list?) [G:\programming\cplusplus\CTK\build\CTK-build\Libs\mbilog\CTKmbilog.vcxproj]
Link latest stand : https://github.com/al-sabr/CTK/commits/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455744369%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=MmaJDxEy2IlUQAyLIL3V88lBHSrGBp4Oqhrg45pcRts%3D&reserved=0>
Can you provide your insight or maybe advice how to resolve this road block.
Best Regards
22.01.2021, 11:25, "Nolden, Marco" <m.nolden at dkfz-heidelberg.de<mailto:m.nolden at dkfz-heidelberg.de>>:
Hi Ramazan,
BlueBerry used to be more separated in MITK (this is also where some references to blueberry.org may dangle around). But it's always a tradeoff to maintain completely separate repositories and build systems, as I said before from a pure architectural view you are completely right. In the beginning it even had an abstraction layer to make it independent of Qt, impressive work by the principal developer, but again something with a tradeoff.
Marco
Von: Ramazan Ergüder Bekrek <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>
Gesendet: Freitag, 22. Januar 2021 11:17
An: Nolden, Marco <M.Nolden at Dkfz-Heidelberg.de<mailto:M.Nolden at Dkfz-Heidelberg.de>>; mitk-users <mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>>; ctk-developers <ctk-developers at public.kitware.com<mailto:ctk-developers at public.kitware.com>>
Betreff: Re: AW: [Ctk-developers] [mitk-users] Moving BlueBerry Framework from MITK towards CTK making it independant of the massive MITK setup
Hi Marco! Thank you for your feedback.
The goal actually was to get the same development feeling without having the need to use all the heavy dependencies that come with MITK. Having something like OSGi Eclipse Equinox and Eclipse RPC to start to program right away in any field was my goal. Right now the people at MITK didn't for see to cut the modularity outside of their Architecture.
The ideal was in my thoughts to make this a brother plugin bundle in CppMicroservices but I didn't have time and energy to go down lower.
CTK felt for me like CppMicroservices with modified version. And I needed Qt5 on top of OSGi + the beautiful Eclipse RPC feeling.
10:52, January 22, 2021, "Nolden, Marco" <m.nolden at dkfz-heidelberg.de<mailto:m.nolden at dkfz-heidelberg.de>>:
Hi Ramazan,
thanks for your interesting efforts! I see the general idea, and conceptually BlueBerry may be closer to the CTK plugin framework than to MITK, but at the same time it's a working system in the way it's setup right now.
Could you maybe give some background about your goals or expectations? You can probably understand that a massive change like this will need considerable resources for review and maintenance in both communities to make this change something the projects using CTK are having a real benefit from.
One thing that has been discussed in the MITK community before was a standalone BlueBerry, to make it available to non-medical applications. So this _could_ be something to aim for, but again this wouldn't be a primary goal for MITK development right now, and in my opinion this could or even should also live outside of the primary CTK repository to make it most useful for the non-medical community looking for a flexible application framework.
Marco
Von: Ctk-developers <ctk-developers-bounces at public.kitware.com<mailto:ctk-developers-bounces at public.kitware.com>> Im Auftrag von Ramazan Ergüder Bekrek
Gesendet: Dienstag, 19. Januar 2021 13:47
An: mitk-users <mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>>; ctk-developers <ctk-developers at public.kitware.com<mailto:ctk-developers at public.kitware.com>>
Betreff: Re: [Ctk-developers] [mitk-users] Moving BlueBerry Framework from MITK towards CTK making it independant of the massive MITK setup
Good news everyone the whole BLUEBERRY framework is now 100% successfully compiling on Windows with VS 2019 and Qt.
Here you can find the latest repo version
https://github.com/al-sabr/CTK/commits/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455744369%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=MmaJDxEy2IlUQAyLIL3V88lBHSrGBp4Oqhrg45pcRts%3D&reserved=0>
Besdt Regards
18.01.2021, 13:48, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
So I was able to convert Blueberry framework from MITK towards CTK.
I was able to successfully compile 7 out of 8 plugins and I had some issues compiling org.blueberry.ui.qt.help because there is a bug in qt5-webengine version 5.15.1.
The link for the repo with working compilation is here : https://github.com/al-sabr/CTK/commits/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455754355%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=TIMYJv834cawrBpjMmF6kyeOo1O1e6l8oSrXlZv7u6s%3D&reserved=0>
I filed a ticket on github on vcpkg repository here : https://github.com/microsoft/vcpkg/issues/15712<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fvcpkg%2Fissues%2F15712&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455754355%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KX5B2K1RLt9mTC6uGE0TCs0Jon0E7bX9LgFzY9Pu4LA%3D&reserved=0>
I still don't understand what it is concerning but I am waiting for the fix they proposed.
Any thought on what could be done next I'm working on this alone and I would appreciate if someone could give some inputs for guidance.
Best Regards
18.01.2021, 13:40, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
So I was able to convert Blueberry framework from MITK towards CTK.
I was able to successfully compile 7 out of 8 plugins and I had some issues compiling org.blueberry.ui.qt.help because there is a bug in qt5-webengine version 5.15.1.
I filed a ticket on github on vcpkg repository here : https://github.com/microsoft/vcpkg/issues/15712<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fvcpkg%2Fissues%2F15712&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455764359%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=h%2F0GWXkiYQLVvK8w7o0FMX6MJ1RKnVN8mNr8ugPA7ro%3D&reserved=0>
I still don't understand what it is concerning but I am waiting for the fix they proposed.
Any thought on what could be done next I'm working on this alone and I would appreciate if someone could give some inputs for guidance.
Best Regards
13.01.2021, 23:42, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
Have a look at the commits of that branch and you will get what I am talking about. If you have ideas and details you noticed I didn't take into consideration then let me know.
https://github.com/al-sabr/CTK/commits/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455764359%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=L0RqApavESStE9NWgg1%2Bb9LSZ700tC0OXdY1IdrfI8I%3D&reserved=0>
Best regards
13.01.2021, 20:48, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
I just started from scratch again so that you can follow what I am talking about since the beginning
https://github.com/al-sabr/CTK/tree/ctk-blueberry-port-from-mitk<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Ftree%2Fctk-blueberry-port-from-mitk&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455774345%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=DvpjNM1sjy3sx3JWNaK2pzHNWcKS0uhjFQqGKDieUE4%3D&reserved=0>
13.01.2021, 18:59, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
Another solution could be we check inside of the code from Blueberry and remove all connection to mbilog and adapt it with the logging system from CTK just by replacing the specific lines. This is just another idea I am not sure about 100% so I would need you perspective.
13.01.2021, 16:52, "Alex Melville" <amelvill at umich.edu<mailto:amelvill at umich.edu>>:
Hi Ramazan,
I am aware of the Virtual PC option and I have several of them, but they are very very slow since Visual Studio is very very disk I/O heavy. To make things a bit more complicated, I need to run Docker on my primary dev machine (which prevents me from easily running VirtualBox) so all this would have to happen on a different PC.
If I get time I can see what I can do, but let's be honest, this will not be an insignificant amount of effort. CMake / build scripts in general are not a super convenient thing to debug remotely.
Did you get a chance to try my suggestion? How did it go?
- Alex
On Wed, Jan 13, 2021 at 10:47 AM Ramazan Ergüder Bekrek <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>> wrote:
I also found this link with 196 mb iso file which is stripped down version.
https://sites.google.com/site/tinyxpfiles/home/1<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsites.google.com%2Fsite%2Ftinyxpfiles%2Fhome%2F1&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455774345%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FoL8UX9SDSDrKYRhZdcD9eBYtdddhpnZdbjq4gUJXD8%3D&reserved=0>
12.01.2021, 21:21, "'Ramazan Ergüder Bekrek'" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
What I would recommend you to do is to install Virtual Box with Tiny Vista Images Fromm Torrents and Install it Takes 15 Minutes Thema visual Studio 2019 Community with mitk latest Version and my repo. What die you think?
15:49, January 12, 2021, "amelvill at umich.edu<mailto:amelvill at umich.edu>" <amelvill at umich.edu<mailto:amelvill at umich.edu>>:
Hi Ramazan,
First, there's one unfortunate thing I have to mention, we use a rather old version of MITK, and as a result, every PC I have that I use with MITK uses Visual Studio 2013 and there's no way I can upgrade, and I can't risk running a more recent version in parallel.
So I can give you suggestions, but unfortunately it will probably be a futile effort for me to actually try and build it. I can't even make a fresh install of Windows, because this job has taken every PC and SSD I own, and then some (between the dev PC and my "build" PC).
Anyway, here is what I think about this:
mbilogExports.h:
mbilogExports.h is an automatically generated header that comes as part of the build process. For me this is what it contains (I found it here: MITK-superbuild\MITK-build\Utilities\mbilog\mbilogExports.h)
#ifndef MBILOG_EXPORT_H
#define MBILOG_EXPORT_H
#ifdef MBILOG_STATIC_DEFINE
# define MBILOG_EXPORT
# define MBILOG_NO_EXPORT
#else
# ifndef MBILOG_EXPORT
# ifdef mbilog_EXPORTS
/* We are building this library */
# define MBILOG_EXPORT __declspec(dllexport)
# else
/* We are using this library */
# define MBILOG_EXPORT __declspec(dllimport)
# endif
# endif
# ifndef MBILOG_NO_EXPORT
# define MBILOG_NO_EXPORT
# endif
#endif
#ifndef MBILOG_DEPRECATED
# define MBILOG_DEPRECATED __declspec(deprecated)
#endif
#ifndef MBILOG_DEPRECATED_EXPORT
# define MBILOG_DEPRECATED_EXPORT MBILOG_EXPORT MBILOG_DEPRECATED
#endif
#ifndef MBILOG_DEPRECATED_NO_EXPORT
# define MBILOG_DEPRECATED_NO_EXPORT MBILOG_NO_EXPORT MBILOG_DEPRECATED
#endif
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef MBILOG_NO_DEPRECATED
# define MBILOG_NO_DEPRECATED
# endif
#endif
#endif /* MBILOG_EXPORT_H */
This is kind of a hacky thing to do, but I wonder if you could just copy/paste this into the mbilog source and use that, since I can't think of a reason why this needs to be auto-generated, other than to take advantage of some free stringizing.
Try this and let me know what happens,
Hope that helps,
* Alex
From: Ramazan Ergüder Bekrek <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>
Sent: Tuesday, January 12, 2021 7:36 AM
To: amelvill at umich.edu<mailto:amelvill at umich.edu>
Subject: Re: [mitk-users] Moving BlueBerry Framework from MITK towards CTK making it independant of the massive MITK setup
Well you can follow the part I blocked. It seems that we need to adapt mbilog or remove it by replacing the logging system from CTK. I was wondering if we could just wrap it around CTK's logging and bam smoothly let it believe that it still uses MITK logging.
What do you think?
Best Regards
16:20, October 6, 2020, "Ramazan Ergüder Bekrek" <e.bekrek at yandex.com<mailto:e.bekrek at yandex.com>>:
Greetings,
I am still in the pursuit of happiness with this endeavor of moving BlueBerry from MITK downward to CTK. Up until now I didn't receive any feedback with that repository that I created as a branch.
I still persisted and almost got it working but due to my lack of CMake understanding I think a little support from all of you would be appreciated. I almost was able to compile org.blueberry.core.runtime as I had it converted to a CTK plugin format when it complained that mbilog was missing its include files.
I've checked mbilog in MITK and saw that it was a MITK Module. Since there is no module in CTK I thought the equivalent could be a Lib like the Core, PluginFramework, etc...
So I converted the mbilog as a CTK Library and almost got it work. Unfortunately I don't understand what is mbilog and also I ask myself if there is no such equivalent available in CTK already that we could just adapt org.blueberry.core.runtime to use that instead of mbilog.
This is the error I am getting when I try to compile
1> CTKCore.vcxproj -> G:\programming\cpp\CTK\build\CTK-build\bin\Debug\CTKCore.dll
1> CTKWidgets.vcxproj -> G:\programming\cpp\CTK\build\CTK-build\bin\Debug\CTKWidgets.dll
1> CTKWidgetsPlugins.vcxproj -> G:\programming\cpp\CTK\build\CTK-build\bin\designer\Debug\CTKWidgetsPlugins.dll
1> CTKPluginFramework.vcxproj -> G:\programming\cpp\CTK\build\CTK-build\bin\Debug\CTKPluginFramework.dll
1> Generating moc_mbilogExports.cpp
1> moc: G:/programming/cpp/CTK/Libs/mbilog/mbilogExports.h: No such file
I created this include file to reflect the structure from MITK inside of CTK/Libs/Core/include:MITK/Modules/Core/include :
https://github.com/al-sabr/CTK/blob/d39f75568a08cbd0efca6042e17b2a68567b9d0a/Libs/Core/include/ctkLogMacros.h#L1<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fblob%2Fd39f75568a08cbd0efca6042e17b2a68567b9d0a%2FLibs%2FCore%2Finclude%2FctkLogMacros.h%23L1&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455784348%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Xaf32SrzHC%2Fj16IE2cTSTmo6DIT%2F0VzD2IiLV2Y1F4w%3D&reserved=0>
I did the standard export directive here :
https://github.com/al-sabr/CTK/blob/d39f75568a08cbd0efca6042e17b2a68567b9d0a/Libs/Core/CMakeLists.txt#L17<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fblob%2Fd39f75568a08cbd0efca6042e17b2a68567b9d0a%2FLibs%2FCore%2FCMakeLists.txt%23L17&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455794340%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=xtswIPwPtln6mMgLys9hHhEPe3AcS5txR5%2By5zX0Jqw%3D&reserved=0>
I still don't get why this file is not created by CTK.
I also added this line from MITK in CTK/Libs/Core/CMakeLists.txt
https://github.com/al-sabr/CTK/blob/d39f75568a08cbd0efca6042e17b2a68567b9d0a/Libs/Core/CMakeLists.txt#L19<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fblob%2Fd39f75568a08cbd0efca6042e17b2a68567b9d0a%2FLibs%2FCore%2FCMakeLists.txt%23L19&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455794340%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=zX6jcVbJCI5ns4wUQg3T%2BG8I7Pi8fILl%2FqHEEL2xRYY%3D&reserved=0>
https://github.com/al-sabr/CTK/blob/d39f75568a08cbd0efca6042e17b2a68567b9d0a/Libs/Core/CMakeLists.txt#L154<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fblob%2Fd39f75568a08cbd0efca6042e17b2a68567b9d0a%2FLibs%2FCore%2FCMakeLists.txt%23L154&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455794340%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FcOmMTr1y56T%2FILAZZIUXKnaSda8NQxnXgVaFO%2BAAbg%3D&reserved=0>
The only thing I could not get my head around is this part which I could not translate to CTK. I think there is no equivalent but if there is one please let me know:
https://github.com/al-sabr/CTK/blob/2359469f3d321a04b6078f49ee51168cf958536a/Libs/mbilog/CMakeLists.txt#L44<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fblob%2F2359469f3d321a04b6078f49ee51168cf958536a%2FLibs%2Fmbilog%2FCMakeLists.txt%23L44&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455804334%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=YVfkmBE6g9FotS8uLcX6ofSSilXWARBFzkFLgWS1poU%3D&reserved=0>
You can follow the commit timeline https://github.com/al-sabr/CTK/commits/ctk-blueberry-framework<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fal-sabr%2FCTK%2Fcommits%2Fctk-blueberry-framework&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455804334%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=gZOrIipUgzjcyJ87lrgWiFQwhYJPdU67YK6Crh%2BgHfo%3D&reserved=0>
Best regards
_______________________________________________
mitk-users mailing list
mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fmitk-users&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455814327%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=VRk9aVpBfDW4svZ1Grf8AQWSengRtplmwrHNKJTXj7M%3D&reserved=0>
--
Sent from Yandex.Mail for mobile
--
Sent from Yandex.Mail for mobile
--
Sent from Yandex.Mail for mobile
,,
_______________________________________________
mitk-users mailing list
mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fmitk-users&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455814327%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=VRk9aVpBfDW4svZ1Grf8AQWSengRtplmwrHNKJTXj7M%3D&reserved=0>
,,
_______________________________________________
mitk-users mailing list
mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fmitk-users&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455824320%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=3kZcz5XqWVfUPYpXi3DaKfdzojnxNEAiYtMbohQwLZ8%3D&reserved=0>
,,
_______________________________________________
mitk-users mailing list
mitk-users at lists.sourceforge.net<mailto:mitk-users at lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fmitk-users&data=04%7C01%7Classo%40queensu.ca%7C3f1ae486a52448ccac7408d8bfc158cb%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C637470184455824320%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=3kZcz5XqWVfUPYpXi3DaKfdzojnxNEAiYtMbohQwLZ8%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20210123/d454980c/attachment.htm>
More information about the Ctk-developers
mailing list