OpenPHDGuiding / phd2

PHD2 Guiding
https://openphdguiding.org
BSD 3-Clause "New" or "Revised" License
245 stars 111 forks source link

INDI v2 migration #1102

Closed knro closed 7 months ago

knro commented 10 months ago

This is the 2nd attempt to migrate INDI to v2. Now this version can be built included bundled INDI. However, it was not tested on Windows & MacOS.

Noticed that one test fails unless I use GTEST from system. Apparently the bundled GTEST is old.

knro commented 10 months ago

@agalasso Sorry about that, I added it now, can you please check again?

knro commented 10 months ago

Just wanted to check if everything tested OK or not yet? @agalasso @d33psky @pchev

agalasso commented 9 months ago

Hi @knro sorry I was not able to get back to you sooner. We're closer, but I'm still getting an error building on Windows:

c:\cygwin\home\agalasso\projects\phd2-indi2\config_indi.h(43): fatal error C1083: Cannot open include file: 'libindi/baseclient.h': No such file or directory [C:\cygwin\home\agalasso\projects\phd2-indi2\tmp\phd2.vcxproj]

May need to update the directory structure in the zip file? baseclient.h is present in the top-level directory, but there's no libindi/ subdirectory, so the include via <libindi/baseclient.h> is not found.

$ find . -name libindi
$ find . -name baseclient.h
./external_libs_deflate/indiclient-2.0.3/baseclient.h
knro commented 9 months ago

Can you please test again? There shouldn't be any <libindi/XXX> anywhere since we ideally include ${INDI_INCLUDE_DIR} that's supposed to take care of that. At any rate, please check again and see if it goes well.

agalasso commented 9 months ago

@knro ok, better, but now getting this:

c:\cygwin\home\agalasso\projects\phd2-indi2\tmp\external_libs_deflate\indiclient-2.0.3\indibase.h(4): fatal error C1
083: Cannot open include file: 'indiapi.h': No such file or directory [C:\cygwin\home\agalasso\projects\phd2-indi2\t
mp\phd2.vcxproj]

There is no indiapi.h in the tree, though I do see indiapi.h.in.

pchev commented 9 months ago

Sorry for the delay for testing.

I tested the last indi_work branch in knro/phd2 and for me everything work fine with Linux and included libindi.

agalasso commented 9 months ago

@knro thanks for fixing the missing include. I'm now seeing some new errors building on Windows. Log attached. build-c17893c5557b8b4ccb09b1a585f417a2114c48c5.txt

pchev commented 9 months ago

@agalasso , you know I am not a C++ specialist so I may be wrong, but the error look like some unsupported syntax by your compiler version.

From the log you are using VS 2013 but I know that INDI cannot be compiled on Linux version that are 5 years old, this may be that same kind of problem with the 10 year old VS compiler. It is probably worth to try with VS 2022.

agalasso commented 9 months ago

thanks @pchev that's true, some of those errors may be due to the old compiler, I have not had a chance to look into them in detail yet. Re: updating PHD2: I agree 100%, we're long overdue to update to VS 2022. I started the process a little while ago but got bogged down in compatibility issues -- I really need to get back to it and finish it.

agalasso commented 8 months ago

@knro I finished updating PHD2's windows build to work with current windows tools -- for example it's now pretty straightforward to build PHD2 in a Windows 10 VM (https://github.com/OpenPHDGuiding/phd2/wiki/BuildingPHD2OnWindows); PHD2 build no longer uses tarballs of external project dependencies (INDI etc), but now uses CMake's ExternalProject facility to pull in and build indiclient. I went ahead and made a branch with this PR's first commit cherry-picked (the following commits are no longer needed since we no longer bundle any INDI snapshot in the phd2 source tree). I also merged the thirdparty.cmake changes from this PR with the upstream PHD2 changes. The result is in this branch: https://github.com/OpenPHDGuiding/phd2/tree/knro-indi_work

The current state is that there are some build errors on Windows:

C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.h(76,29): error C2061: syntax error: identifier 'mode_t' [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]
C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.h(81,30): error C2061: syntax error: identifier 'mode_t' [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]
C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.cpp(41,29): error C2061: syntax error: identifier 'mode_t' [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]
C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.cpp(44,5): error C2065: 'mode': undeclared identifier [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]
C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.cpp(51,27): error C2061: syntax error: identifier 'mode_t' [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]
C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi\libs\indicore\indiutility.cpp(70,65): error C2065: 'mode': undeclared identifier [C:\cygwin\home\Andy\projects\phd2\tmp\indi-prefix\src\indi-build\libs\indicore\indicore.vcxproj]

Do you think you could take a look at these?

knro commented 8 months ago

Thanks! Sure, I'll take a look.