Page 1 of 1

I need help with compiling Celestia on Windows 10

Posted: 30.06.2020, 04:26
by norinonoroi
(I apologize in advance for the long post)
I've been following the Install.md included with the Celestia source, and managed to get as far as installing all the libraries via vcpkg:
libpng:x64-windows
libjpeg-turbo:x64-windows
gettext:x64-windows
lua:x64-windows
fmt:x64-windows
libepoxy:x64-windows
eigen3:x64-windows
as well as
qt5:x64-windows-static (the non-static libraries wouldn't install, so I'm trying the static ones)
luajit:x64-windows

When I run cmake -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake ..
from my Celestia build64 directory I get the following:
----------------------------------------------
CMake Deprecation Warning at CMakeLists.txt:6 (cmake_policy):
The OLD behavior for policy CMP0071 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at CMakeLists.txt:19 (cmake_policy):
The OLD behavior for policy CMP0004 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.


-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
-- Could NOT find Gettext (missing: GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE)
CMake Warning at CMakeLists.txt:105 (message):
Gettext is not found, traslations won't be created.


-- NAIF SPICE is disabled. Not looking for cspice library.
-- Found Eigen3 3.3.7
-- GLUT frontend is disabled.
-- Either not Unix or Gtk frontend is disabled.
-- SDL frontend is disabled.
CMake Error at CMakeLists.txt:388 (add_subdirectory):
The source directory

C:/Celestia/Celestia-master/content

does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "C:/Celestia/Celestia-master/build64/CMakeFiles/CMakeOutput.log".
See also "C:/Celestia/Celestia-master/build64/CMakeFiles/CMakeError.log".
----------------------------------------------
Looking at the CMakeError.log
----------------------------------------------
16.6.0+5ff7b0c9e for .NET Framework

Copyright (C) Microsoft Corporation. All rights reserved.

Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64

CheckSymbolExists.c

Copyright (C) Microsoft Corporation. All rights reserved.

cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_e9ee1.dir\Debug\\" /Fd"cmTC_e9ee1.dir\Debug\vc142.pdb" /Gd /TC /errorReport:queue "C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\CheckSymbolExists.c"

C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\CheckSymbolExists.c(2,10): fatal error C1083: Cannot open include file: 'wordexp.h': No such file or directory [C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\cmTC_e9ee1.vcxproj]

File C:/Celestia/Celestia-master/build64/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <wordexp.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef wordexp
return ((int*)(&wordexp))[argc];
#else
(void)argc;
return 0;
#endif
}
Determining if files byteswap.h exist failed with the following output:
Change Dir: C:/Celestia/Celestia-master/build64/CMakeFiles/CMakeTmp

Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_5d19a.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework

Copyright (C) Microsoft Corporation. All rights reserved.

Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64

HAVE_BYTESWAP_H.c

Copyright (C) Microsoft Corporation. All rights reserved.

cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_5d19a.dir\Debug\\" /Fd"cmTC_5d19a.dir\Debug\vc142.pdb" /Gd /TC /errorReport:queue "C:\Celestia\Celestia-master\build64\CMakeFiles\CheckIncludeFiles\HAVE_BYTESWAP_H.c"

C:\Celestia\Celestia-master\build64\CMakeFiles\CheckIncludeFiles\HAVE_BYTESWAP_H.c(2,10): fatal error C1083: Cannot open include file: 'byteswap.h': No such file or directory [C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\cmTC_5d19a.vcxproj]

Source:
/* */
#include <byteswap.h>

int main(void){return 0;}

Determining if the include file experimental/filesystem exists failed with the following output:
Change Dir: C:/Celestia/Celestia-master/build64/CMakeFiles/CMakeTmp

Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_adaea.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework

Copyright (C) Microsoft Corporation. All rights reserved.

Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64

CheckIncludeFile.cxx

Copyright (C) Microsoft Corporation. All rights reserved.

cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_adaea.dir\Debug\\" /Fd"cmTC_adaea.dir\Debug\vc142.pdb" /Gd /TP /errorReport:queue "C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\CheckIncludeFile.cxx"

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include\experimental/filesystem(30,1): fatal error C1189: #error: The <experimental/filesystem> header providing std::experimental::filesystem is deprecated by Microsoft and will be REMOVED. It is superseded by the C++17 <filesystem> header providing std::filesystem. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to acknowledge that you have received this warning. [C:\Celestia\Celestia-master\build64\CMakeFiles\CMakeTmp\cmTC_adaea.vcxproj]

----------------------------------------
The first error seems to be with wordexp.h, did I miss something in the libraries I built with vcpkg? or is the PATH not getting setup correctly?

Any help or insight into what I'm doing wrong would be appreciated

Posted: 30.06.2020, 05:29
by onetwothree
You need to download CelestiaContent into "content" subdirectory. Better instead of downloading source code from github use

Code: Select all

git clone https://github.com/CelestiaProject/Celestia.git
cd Celestia
git submodule update --init


to download Celestia with dependencies