Experience converting Qt VS Tools MSVC project to cmake
-
wrote on 17 Oct 2024, 09:16 last edited by Perdrix
I just tried to use cmake-converter to do this conversion, but it all fell about on me :(
I realise that this isn't a place for getting support for cmake-converter, but if there's any help that anyone can give me based on the below log I'd be most grateful. I'm particularly interested in the lines like:
DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(35): file
or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive$(QtMsBuild)\qt_defaults.props" not found.as I'm unclear whether the qt_default.props file is relevant to a CMake build (and it shouldn't be trying to look there for that file anyway - it should be looking for: "$(QtMsBuild)\qt_defaults.props".
Clearly moving from MsBuild with QT VS Tools to CMake is tricker than I'd hoped.
C:\Users\amonra\Documents\GitHub\DSS>cmake-converter -s DeepSkyStacker.VS2022.sln 0.000000 processes count = 16 0.000000 warnings level = 2 0.199718 1> Conversion started: Project DeepSkyStackerCL 0.203894 2> Conversion started: Project DeepSkyStackerLive 0.207380 3> Conversion started: Project DeepSkyStacker 0.213875 4> Conversion started: Project libtiff 0.215014 5> Conversion started: Project ZCLass 0.216017 6> Conversion started: Project libraw0.216017 7> Conversion started: Project DeepSkyStackerTest 0.224847 8> Conversion started: Project DeepSkyStackerKernel 0.233438 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(35): file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(QtMsBuild)\qt_defaults.props" not found. 0.234435 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(35): gett ing actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(QtMsBuild)\qt_defaults.pr ops" 0.237427 6> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/LibRaw/buildfiles/libraw.vcxproj(49): ('Debug', 'x64') : Unknown variable: $(PlatformTarget), trying $ENV{PlatformTarget}0.238425 2> WARN L1 : 0.239422 6> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(56): ('Re lease', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(QtMsBuild)\Qt.props" not found. file:/C:/Users/amonra/Documents/GitHub/DSS/LibRaw/buildfiles/libraw.vcxproj(53): ('Release', 'x64') : Unknown variable: $(PlatformTarget), trying $ENV{PlatformTarget} 0.240422 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(56): ('Release', 'x64') : getti ng actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(QtMsBuild)\Qt.props" 0.243465 4> WARN L1 : 0.243465 5> WARN L1 : 0.243465 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/LibTiff/lib tiff.vcxproj(51): ('Release', 'x64') : Unknown variable: $(PlatformTarget), trying $ENV{PlatformTarget}file:/C:/Users/am onra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(36): file or path "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBui ld)\qt_defaults.props" not found.file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxpro j(37): file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(QtMsBuild)\qt_defaults.props" not found. 0.245470 4> WARN L1 : 0.245470 2> WARN L1 : 0.245470 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/LibTiff/libtiff.vcxproj(56): ('Debug', 'x64') : Unknown variable: $(PlatformT arget), trying $ENV{PlatformTarget}0.245470 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/D eepSkyStackerLive.vcxproj(61): ('Debug', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\ $(QtMsBuild)\Qt.props" not found.file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(36): getting actual fi lesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBuild)\qt_defaults.props" file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(37): getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(QtMsBuild)\qt_defaults.props" 0.247972 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(61): ('Debug', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(QtMsBuild)\Qt.props" 0.250325 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(56): ('Release', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBuild)\Qt.props" not found.0.251328 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(58): ('Debug', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(QtMsBuild)\Qt.props" not found.0.251328 5> WARN L1 : fi le:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(56): ('Release', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBuild)\Qt.props" 0.252803 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(58): ('Debug', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(QtMsBuild)\Qt.props" 0.255816 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(62): ('Re lease', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(QtMsBuild)\Qt.props" not found. 0.256812 7> WARN L1 : 0.256812 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStacker Test.vcxproj(62): ('Release', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\Dee pSkyStackerTest\$(QtMsBuild)\Qt.props"file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(62): ('Debug', 'x 64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBuild)\Qt.props" not found. 0.259968 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(62): ('Debug', 'x64') : getting a ctual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\ZCLass\$(QtMsBuild)\Qt.props" 0.263376 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(68): ('Debug', 'x64') : Unknown v ariable: $(PlatformTarget), trying $ENV{PlatformTarget} 0.264443 5> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/ZCLass/ZCLass.vcxproj(74): ('Release', 'x64') : Unknown variable: $(PlatformTarget), trying $ENV{PlatformTarget}0.264443 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(83): ('Debug', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(Boost_1_80_0)" not found. 0.265499 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(83): ('De bug', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(Boost_ 1_80_0)" 0.266714 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(93): ('De bug', 'x64') : Found absolute path : C:/Program Files %28x86%29/Visual Leak Detector/lib/Win64 0.269983 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(95): ('De bug', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\zlib" not found. 0.271015 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(95): ('De bug', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\zlib" 0.272180 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(106): ('R elease', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(Boost_1_80_0)" not found. 0.273177 7> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerTest/DeepSkyStackerTest.vcxproj(106): ('R elease', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerTest\$(Boo st_1_80_0)"0.274174 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(95): ('Debug', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(Boost_1_80_0)" not found. 0.275171 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(95): ('De bug', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(Boost_ 1_80_0)" 0.276168 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(96): ('De bug', 'x64') : Unknown variable: $(Qt_DEFINES_), trying $ENV{Qt_DEFINES_} 0.294335 5> Conversion done : Project ZCLass (8 warnings) 0.295396 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(151): ('R elease', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\zlib" not found. 0.296577 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(151): ('R elease', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\zlib" 0.299079 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(151): ('R elease', 'x64') : file or path "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(Boost_1_80_0)" not found. 0.299079 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(151): ('R elease', 'x64') : getting actual filesystem name failed : "C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStackerLive\$(Boo st_1_80_0)" 0.300534 2> WARN L1 : file:/C:/Users/amonra/Documents/GitHub/DSS/DeepSkyStackerLive/DeepSkyStackerLive.vcxproj(152): ('R elease', 'x64') : Unknown variable: $(Qt_DEFINES_), trying $ENV{Qt_DEFINES_} 0.313326 7> Conversion done : Project DeepSkyStackerTest (11 warnings) 0.362292 4> Conversion done : Project libtiff (2 warnings) 0.384336 2> Conversion done : Project DeepSkyStackerLive (16 warnings) 0.433261 6> Conversion done : Project libraw (2 warnings) multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "C:\Program Files\Python311\Lib\multiprocessing\pool.py", line 125, in worker result = (True, func(*args, **kwds)) ^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\multiprocessing\pool.py", line 48, in mapstar return list(map(*args)) ^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\data_converter.py", line 285, in run_conversion converted = self.convert_project( ^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\data_converter.py", line 252, in convert_project self.collect_data(context) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\data_converter.py", line 53, in collect_data context.parser.parse(context) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\visual_studio\vcxproj\parser.py", line 145, in pars e self._parse_nodes(context, root) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\parser.py", line 101, in _parse_nodes node_handlers[child_node_tag](context, child_node) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\visual_studio\vcxproj\parser.py", line 190, in __pa rse_property_group self._parse_nodes(context, node) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\parser.py", line 92, in _parse_nodes self._parse_attributes(context, child_node) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\parser.py", line 119, in _parse_attributes attributes_handlers[attr](context, attr, node.get(attr), node) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\visual_studio\vcxproj\parser.py", line 291, in __pa rse_condition cmake_setting = make_cmake_configuration(context, found.group(1)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\utils.py", line 508, in make_cmake_configuration return "{}|{}".format(*sln_conf_arch) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IndexError: Replacement index 1 out of range for positional args tuple """ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Program Files\Python311\Scripts\cmake-converter.exe\__main__.py", line 7, in <module> File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\main.py", line 144, in main converter.convert_solution(project_context, os.path.abspath(args.solution)) File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\visual_studio\solution.py", line 330, in convert_so lution results = self.do_conversion(project_context, input_data_for_converter) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\cmake_converter\data_converter.py", line 317, in do_conversion results = pool.map(self.run_conversion, input_converter_data_list) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\multiprocessing\pool.py", line 367, in map return self._map_async(func, iterable, mapstar, chunksize).get() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\multiprocessing\pool.py", line 774, in get raise self._value IndexError: Replacement index 1 out of range for positional args tuple C:\Users\amonra\Documents\GitHub\DSS>
Thanks, David
-
wrote on 18 Oct 2024, 07:51 last edited by
I haven't really used CMake so far (but I'm an interested observer). My guess is that automatic conversion might give a working CMake file, but it is most likely not maintainable. Automatic conversion will try to handle Qt like any other library while there is a simple, maintainable solution by importing the Qt module/package inside the CMake file (not entirely sure about the terminology).
I would personally try to remove everything Qt-related (but not your own source using Qt) from the project(s) and then try to convert the solution. After that it is a single line to include Qt again into your CMake configuration. Also, I would create a separate CMake file for each project in your solution. Then, you'd have to add the dependencies between the different projects back into the CMake files by hand (also very simple).
-
wrote on 18 Oct 2024, 08:23 last edited by Perdrix
there is a simple, maintainable solution by importing the Qt module/package inside the CMake file
Where do I find information about this please
-
1/4