HavoX Posted August 8, 2021 (edited) I also want to mention that the compilation instructions at GitHub aren't really the best. Spoiler HavoX@DESKTOP-NJTJP9K MINGW64 ~ # git clone https://github.com/team-eternity/eternity Cloning into 'eternity'... remote: Enumerating objects: 57658, done. remote: Counting objects: 100% (2400/2400), done. remote: Compressing objects: 100% (1542/1542), done. remote: Total 57658 (delta 1059), reused 2162 (delta 847), pack-reused 55258 Receiving objects: 100% (57658/57658), 39.46 MiB | 14.71 MiB/s, done. Resolving deltas: 100% (45307/45307), done. Updating files: 100% (1789/1789), done. HavoX@DESKTOP-NJTJP9K MINGW64 ~ # cd eternity git submodule update --init Submodule 'adlmidi' (https://github.com/Wohlstand/libADLMIDI/) registered for path 'adlmidi' Cloning into '/home/HavoX/eternity/adlmidi'... Submodule path 'adlmidi': checked out '7d8e2ad424449af1212fdbba9099760c2e9bf538' HavoX@DESKTOP-NJTJP9K MINGW64 ~/eternity # mkdir build cd build HavoX@DESKTOP-NJTJP9K MINGW64 ~/eternity/build # cd ~ cd eternity HavoX@DESKTOP-NJTJP9K MINGW64 ~/eternity # cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -S . -B build -- The C compiler identification is GNU 10.3.0 -- The CXX compiler identification is GNU 10.3.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found asciidoc: C:/msys64/mingw64/bin/asciidoc -- Performing Test FLAG_CXX_stdcxx17 -- Performing Test FLAG_CXX_stdcxx17 - Failed -- Performing Test FLAG_CXX_lstdcxxfs -- Performing Test FLAG_CXX_lstdcxxfs - Success -- Performing Test FLAG_C_Wall -- Performing Test FLAG_C_Wall - Success -- Performing Test FLAG_CXX_Wall -- Performing Test FLAG_CXX_Wall - Success -- Performing Test FLAG_C_fomit_frame_pointer -- Performing Test FLAG_C_fomit_frame_pointer - Success -- Performing Test FLAG_CXX_fomit_frame_pointer -- Performing Test FLAG_CXX_fomit_frame_pointer - Success -- Found OpenGL: opengl32 -- Found SDL2: C:/msys64/home/HavoX/eternity/build/SDL2-2.0.14/x86_64-w64-mingw32/lib/libSDL2.dll.a -- Found SDL2_mixer: C:/msys64/home/HavoX/eternity/build/SDL2_mixer-2.0.4/x86_64-w64-mingw32/lib/libSDL2_mixer.dll.a -- Found SDL2_net: C:/msys64/home/HavoX/eternity/build/SDL2_net-2.0.1/x86_64-w64-mingw32/lib/libSDL2_net.dll.a CMake Deprecation Warning at acsvm/CMakeLists.txt:13 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- Performing Test HAS_NO_PIE -- Performing Test HAS_NO_PIE - Success ==== libADLMIDI options ==== libADLMIDI_STATIC = ON libADLMIDI_SHARED = OFF WITH_UNIT_TESTS = OFF WITH_MIDI_SEQUENCER = ON WITH_EMBEDDED_BANKS = ON WITH_HQ_RESAMPLER = OFF WITH_MUS_SUPPORT = ON WITH_XMI_SUPPORT = ON USE_DOSBOX_EMULATOR = ON USE_NUKED_EMULATOR = ON USE_OPAL_EMULATOR = ON USE_JAVA_EMULATOR = ON ===== Utils and extras ===== WITH_GENADLDATA = OFF WITH_GENADLDATA_COMMENTS = OFF WITH_MIDIPLAY = OFF MIDIPLAY_WAVE_ONLY = OFF WITH_ADLMIDI2 = OFF WITH_VLC_PLUGIN = OFF WITH_OLD_UTILS = OFF WITH_MUS2MID = OFF WITH_XMI2MID = OFF EXAMPLE_SDL2_AUDIO = OFF WITH_WINMMDRV = OFF CMake Deprecation Warning at zlib/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of off64_t -- Check size of off64_t - done -- Looking for fseeko -- Looking for fseeko - found -- Looking for unistd.h -- Looking for unistd.h - found -- The ASM compiler identification is GNU -- Found assembler: C:/msys64/mingw64/bin/gcc.exe -- Performing Test HAVE_LD_VERSION_SCRIPT -- Performing Test HAVE_LD_VERSION_SCRIPT - Success CMake Deprecation Warning at snes_spc/CMakeLists.txt:20 (CMAKE_MINIMUM_REQUIRED): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- Configuring done -- Generating done -- Build files have been written to: C:/msys64/home/HavoX/eternity/build HavoX@DESKTOP-NJTJP9K MINGW64 ~/eternity # cmake --build build [ 0%] Built target readme-asciidoc [ 0%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Action.cpp.obj [ 0%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Array.cpp.obj [ 1%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/BinaryIO.cpp.obj [ 1%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/CallFunc.cpp.obj [ 1%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/CodeData.cpp.obj [ 1%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Environment.cpp.obj [ 2%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Error.cpp.obj [ 2%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Function.cpp.obj [ 2%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Init.cpp.obj [ 3%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Jump.cpp.obj [ 3%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Module.cpp.obj [ 3%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/ModuleACS0.cpp.obj [ 3%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/ModuleACSE.cpp.obj [ 4%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/PrintBuf.cpp.obj [ 4%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Scope.cpp.obj [ 4%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Script.cpp.obj [ 5%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Serial.cpp.obj [ 5%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/String.cpp.obj [ 5%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Thread.cpp.obj [ 6%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/ThreadExec.cpp.obj [ 6%] Building CXX object acsvm/ACSVM/CMakeFiles/acsvm.dir/Tracer.cpp.obj [ 6%] Linking CXX static library libacsvm.a [ 6%] Built target acsvm [ 7%] Building C object adlmidi/CMakeFiles/ADLMIDI_version_check.dir/version_check.c.obj [ 7%] Built target ADLMIDI_version_check [ 7%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi.cpp.obj [ 7%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi_load.cpp.obj [ 7%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi_midiplay.cpp.obj [ 8%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi_opl3.cpp.obj [ 8%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi_private.cpp.obj [ 8%] Building C object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/wopl/wopl_file.c.obj [ 9%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/adlmidi_sequencer.cpp.obj [ 9%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/dosbox_opl3.cpp.obj [ 9%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/dosbox/dbopl.cpp.obj [ 9%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/nuked_opl3.cpp.obj [ 10%] Building C object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/nuked/nukedopl3.c.obj [ 10%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/nuked_opl3_v174.cpp.obj [ 10%] Building C object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/nuked/nukedopl3_174.c.obj [ 11%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/opal_opl3.cpp.obj [ 11%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/chips/java_opl3.cpp.obj [ 11%] Building CXX object adlmidi/CMakeFiles/ADLMIDI_static.dir/src/inst_db.cpp.obj [ 11%] Linking CXX static library ../libADLMIDI.a [ 11%] Built target ADLMIDI_static [ 11%] Building C object zlib/CMakeFiles/zlibstatic.dir/adler32.obj [ 11%] Building C object zlib/CMakeFiles/zlibstatic.dir/compress.obj [ 12%] Building C object zlib/CMakeFiles/zlibstatic.dir/crc32.obj [ 12%] Building C object zlib/CMakeFiles/zlibstatic.dir/deflate.obj [ 12%] Building C object zlib/CMakeFiles/zlibstatic.dir/gzclose.obj [ 13%] Building C object zlib/CMakeFiles/zlibstatic.dir/gzlib.obj [ 13%] Building C object zlib/CMakeFiles/zlibstatic.dir/gzread.obj [ 13%] Building C object zlib/CMakeFiles/zlibstatic.dir/gzwrite.obj [ 13%] Building C object zlib/CMakeFiles/zlibstatic.dir/inflate.obj [ 14%] Building C object zlib/CMakeFiles/zlibstatic.dir/infback.obj [ 14%] Building C object zlib/CMakeFiles/zlibstatic.dir/inftrees.obj [ 14%] Building C object zlib/CMakeFiles/zlibstatic.dir/inffast.obj [ 15%] Building C object zlib/CMakeFiles/zlibstatic.dir/trees.obj [ 15%] Building C object zlib/CMakeFiles/zlibstatic.dir/uncompr.obj [ 15%] Building C object zlib/CMakeFiles/zlibstatic.dir/zutil.obj [ 16%] Linking C static library libzlibstatic.a [ 16%] Built target zlibstatic [ 16%] Built target genfiles [ 16%] Building C object libpng/CMakeFiles/png_static.dir/png.c.obj [ 16%] Building C object libpng/CMakeFiles/png_static.dir/pngerror.c.obj [ 17%] Building C object libpng/CMakeFiles/png_static.dir/pngget.c.obj [ 17%] Building C object libpng/CMakeFiles/png_static.dir/pngmem.c.obj [ 17%] Building C object libpng/CMakeFiles/png_static.dir/pngpread.c.obj [ 18%] Building C object libpng/CMakeFiles/png_static.dir/pngread.c.obj [ 18%] Building C object libpng/CMakeFiles/png_static.dir/pngrio.c.obj [ 18%] Building C object libpng/CMakeFiles/png_static.dir/pngrtran.c.obj [ 19%] Building C object libpng/CMakeFiles/png_static.dir/pngrutil.c.obj [ 19%] Building C object libpng/CMakeFiles/png_static.dir/pngset.c.obj [ 19%] Building C object libpng/CMakeFiles/png_static.dir/pngtrans.c.obj [ 19%] Building C object libpng/CMakeFiles/png_static.dir/pngwio.c.obj [ 20%] Building C object libpng/CMakeFiles/png_static.dir/pngwrite.c.obj [ 20%] Building C object libpng/CMakeFiles/png_static.dir/pngwtran.c.obj [ 20%] Building C object libpng/CMakeFiles/png_static.dir/pngwutil.c.obj [ 21%] Linking C static library libpng16.a [ 21%] Built target png_static [ 21%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/SNES_SPC.obj In member function 'void SNES_SPC::cpu_write_high(int, int, SNES_SPC::rel_time_t)', inlined from 'void SNES_SPC::cpu_write_high(int, int, SNES_SPC::rel_time_t)' at C:/msys64/home/HavoX/eternity/snes_spc/SNES_SPC.cpp:401:6: C:/msys64/home/HavoX/eternity/snes_spc/SNES_SPC.cpp:412:22: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 412 | RAM [i + rom_addr] = cpu_pad_fill; // restore overwritten padding | ^ In file included from C:/msys64/home/HavoX/eternity/snes_spc/SNES_SPC.cpp:5: C:/msys64/home/HavoX/eternity/snes_spc/SNES_SPC.h: In member function 'void SNES_SPC::cpu_write_high(int, int, SNES_SPC::rel_time_t)': C:/msys64/home/HavoX/eternity/snes_spc/SNES_SPC.h:184:12: note: at offset [65536, 2147483647] to object 'SNES_SPC::state_t::<unnamed struct>::ram' with size 65536 declared here 184 | uint8_t ram [0x10000]; | ^~~ [ 21%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/SNES_SPC_misc.obj [ 21%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/SNES_SPC_state.obj [ 22%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/SPC_DSP.obj [ 22%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/SPC_Filter.obj [ 22%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/dsp.obj [ 23%] Building CXX object snes_spc/CMakeFiles/snes_spc.dir/spc.obj [ 23%] Linking CXX static library libsnes_spc.a [ 23%] Built target snes_spc [ 24%] Generating ../../base/heretic/eternity.pke [ 24%] Generating ../../base/doom/eternity.pke Scanning dependencies of target eternity [ 24%] Building RC object source/CMakeFiles/eternity.dir/Eternity.rc.obj C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:10: warning: "VFT_APP" redefined 10 | #define VFT_APP 0x00000001L | In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/winresrc.h:30, from C:/msys64/mingw64/x86_64-w64-mingw32/include/windows.h:27, from C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:7: C:/msys64/mingw64/x86_64-w64-mingw32/include/winver.h:52: note: this is the location of the previous definition 52 | #define VFT_APP __MSABI_LONG(0x00000001) | C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:11: warning: "VOS_NT" redefined 11 | #define VOS_NT 0x00040000L | In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/winresrc.h:30, from C:/msys64/mingw64/x86_64-w64-mingw32/include/windows.h:27, from C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:7: C:/msys64/mingw64/x86_64-w64-mingw32/include/winver.h:36: note: this is the location of the previous definition 36 | #define VOS_NT __MSABI_LONG(0x00040000) | C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:12: warning: "VS_FF_DEBUG" redefined 12 | #define VS_FF_DEBUG 0x00000001L | In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/winresrc.h:30, from C:/msys64/mingw64/x86_64-w64-mingw32/include/windows.h:27, from C:/msys64/home/HavoX/eternity/build/source/Eternity.rc:7: C:/msys64/mingw64/x86_64-w64-mingw32/include/winver.h:25: note: this is the location of the previous definition 25 | #define VS_FF_DEBUG __MSABI_LONG(0x00000001) | [ 24%] Building CXX object source/CMakeFiles/eternity.dir/Win32/i_exception.cpp.obj C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp: In function 'void PrintCS()': C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:561:7: error: '__try' was not declared in this scope 561 | __try | ^~~~~ C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:565:7: error: '__except' was not declared in this scope 565 | __except(EXCEPTION_EXECUTE_HANDLER) | ^~~~~~~~ C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp: In function 'void PrintStack()': C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:681:4: error: '__try' was not declared in this scope 681 | __try | ^~~~~ C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:742:4: error: '__except' was not declared in this scope 742 | __except(EXCEPTION_EXECUTE_HANDLER) | ^~~~~~~~ C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp: In function 'void PrintBacktrace()': C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:757:4: error: '__try' was not declared in this scope 757 | __try | ^~~~~ C:/msys64/home/HavoX/eternity/source/Win32/i_exception.cpp:793:4: error: '__except' was not declared in this scope 793 | __except(EXCEPTION_EXECUTE_HANDLER) | ^~~~~~~~ make[2]: *** [source/CMakeFiles/eternity.dir/build.make:864: source/CMakeFiles/eternity.dir/Win32/i_exception.cpp.obj] Error 1 make[1]: *** [CMakeFiles/Makefile2:421: source/CMakeFiles/eternity.dir/all] Error 2 make: *** [Makefile:156: all] Error 2 HavoX@DESKTOP-NJTJP9K MINGW64 ~/eternity # Edited August 9, 2021 by HavoX 0 Quote Share this post Link to post
Edward850 Posted August 9, 2021 (edited) Typically we just use cmake and visual studio (Windows) or gcc (Linux). MSYS looks to be adding extra steps and I'm not sure if anyone uses that. Edited August 9, 2021 by Edward850 0 Quote Share this post Link to post
HavoX Posted August 9, 2021 13 hours ago, Edward850 said: and visual studio (Windows) ...sigh... Well, that's the problem. I wanted to use Visual Studio Community, but there were some issues I had with it. One is the installation size; the more components I add to the installation, the more bloated it becomes (which can wind up becoming more than 20+ GB!). That is NOT what I want. The other issue (and it's a big one) is that it has a so-called 30-day "trial" that, when it ends, requires activation via a Microsoft Account. Needless to say, when I did try to sign in, I learned that they locked my account. The cheek of those guys! :-( 0 Quote Share this post Link to post
whou Posted August 9, 2021 4 hours ago, HavoX said: Well, that's the problem. I wanted to use Visual Studio Community, but there were some issues I had with it. One is the installation size; the more components I add to the installation, the more bloated it becomes (which can wind up becoming more than 20+ GB!). That is NOT what I want. You could try just downloading the standalone Build Tools for Visual Studio 2019, which you can just install the compiler and build tools binaries and use them normally as a CLI. In the end the Build Tools for C++ base install size reaches 6 GB + 1,2 GB from the MFC Libraries required to compile Eternity, which is still quite big and bloated if you ask me, but it should be the bare minimum to compile anything with Visual Studio. If you do decide installing it, the build commands are a little diferent. Just use CMake normally but targetting Visual Studio 16 2019 with cmake -G "Visual Studio 16 2019" Then to compile the project cd into the build directory and use msbuild "Eternity Engine.sln" /p:Configuration=Release For some reason my bash can't recognise msbuild, so this part you can just do in cmd and it should compile just as a normal Visual Studio project. I did try compiling the source myself using only the Build Tools for Visual Studio 2019 installation and succeeded, so it should be fine. 1 Quote Share this post Link to post
HavoX Posted August 9, 2021 (edited) PROBLEM SOLVED. I used Visual Studio Code with the Build Tools, and it worked without a hitch. Edited August 9, 2021 by HavoX 1 Quote Share this post Link to post
Edward850 Posted August 9, 2021 9 hours ago, HavoX said: Needless to say, when I did try to sign in, I learned that they locked my account. The cheek of those guys! :-( Microsoft aren't going to lock your account for no reason. You've either misinterpreted what you saw, done something very catastrophically wrong, or forgot something simple (did you remember to accept the account validation email?). 0 Quote Share this post Link to post
HavoX Posted August 10, 2021 13 hours ago, Edward850 said: Microsoft aren't going to lock your account for no reason. You've either misinterpreted what you saw, done something very catastrophically wrong, or forgot something simple (did you remember to accept the account validation email?). Well, apparently I forgot my Win10 login password so I had to reset it. But that, my friend, is another story ;-) 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.