horde3d / Horde3D

Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
http://horde3d.org/
1.55k stars 308 forks source link

not working with MacOS #130

Closed MichaelVoelkel closed 3 years ago

MichaelVoelkel commented 6 years ago
Error copying directory from "/Users/michael/Code/Game2/Horde3D/Horde3D/Binaries/Darwin" to "/Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin//Debug/".

makes sense because /Users/michael/Code/Game2/Horde3D/build/Binaries/ does not contain any folder Darwin

algts commented 6 years ago

Hi. Can you please provide more details? When does this error occur? During engine build or during samples build? I don't have a Mac so I can only guess the phase where something went wrong.

MichaelVoelkel commented 6 years ago

Hi, without Mac, this will most likely be hard to reproduce.

This occurs during engine build. I am in Horde3D root directory, create a new directory build and perform cmake .., which works, and then cmake --build ., which fails.

I can paste more of the log, but there seems to be some custom build step, which produces the error. Repeating myself, the "copy directory" command clearly fails because there is no Darwin directory in Horde3D/Horde3D/Binaries, whichever might be the reason for this. It only contains Windows, Contents, CMakeLists.txt and CMakeFiles. Here, a larger part of the log:

RegisterWithLaunchServices /Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin/Debug/Tessellator.app (in target: Tessellator)
    cd /Users/michael/Code/Game2/Horde3D
    builtin-lsRegisterURL /Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin/Debug/Tessellator.app

Touch /Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin/Debug/Tessellator.app (in target: Tessellator)
    cd /Users/michael/Code/Game2/Horde3D
    /usr/bin/touch -c /Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin/Debug/Tessellator.app

PhaseScriptExecution CMake\ PreBuild\ Rules /Users/michael/Code/Game2/Horde3D/build/Horde3D/Binaries/Horde3D.build/Debug/CopyPlatformFiles.build/Script-12ABE35EA214424D8891E098.sh (in target: CopyPlatformFiles)
    cd /Users/michael/Code/Game2/Horde3D
    /bin/sh -c /Users/michael/Code/Game2/Horde3D/build/Horde3D/Binaries/Horde3D.build/Debug/CopyPlatformFiles.build/Script-12ABE35EA214424D8891E098.sh
/usr/local/Cellar/cmake/3.12.2/bin/cmake -E copy_directory /Users/michael/Code/Game2/Horde3D/Horde3D/Binaries/Darwin /Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin//Debug/
Error copying directory from "
/Users/michael/Code/Game2/Horde3D/Horde3D/Binaries/Darwin" to "/Users/michael/Code/Game2/Horde3D/build/Binaries/Darwin//Debug/".
make: *** [CopyPlatformFiles_buildpart_0] Error 1

Command PhaseScriptExecution failed with a nonzero exit code

** BUILD FAILED **

The following build commands failed:
    PhaseScriptExecution CMake\ PreBuild\ Rules /Users/michael/Code/Game2/Horde3D/build/Horde3D/Binaries/Horde3D.build/Debug/CopyPlatformFiles.build/Script-12ABE35EA214424D8891E098.sh
(1 failure)
algts commented 6 years ago

Sorry for the long delay. Is CMAKE_RUNTIME_OUTPUT_DIRECTORY variable set? It is probably easier to use Cmake gui to set the variables/properties. Currently, the only thing that may be wrong is probably the incorrect CMAKE variable values.

Can you temporarily turn off HORDE3D_BUILD_SAMPLES property to see whether engine builds and the problem is with samples? Do you download GLFW library or do you use the one in your system?

Do you use master or develop branch? If you are just using the release version, please upgrade to the latest master.

If, for some reason, I won't be able to help you with the problem, I suggest you should drop CMake and create projects for engine and samples in your favorite IDE.

jackhub commented 6 years ago

I have the same problem, after delete Xcode target "CopyPlatformFiles", then it works

jackhub commented 6 years ago

@algts do you have any plans to support iOS?

algts commented 6 years ago

@jackhub I'm currently working on GLES3 backend, it already works on linux machines (PCs, dev boards). It still has some issues with render buffers, but otherwise it is pretty stable. I don't know yet when I'll push the changes to develop branch. Also I don't have a Mac/IOS device to test on (probably, emulator will be sufficient). Probably I'll push the GLES backend to develop branch at the end of the year.

jcmonnin commented 6 years ago

I can also confirm the problem (Latest versions, macOS 10.14, Xcode 10.0).

Additionally, the output of the sample applications were black. I tracked it down to a GLFW problem in Mojave (glfw/glfw#1334). There is the very recent mojave-fixes branch that fixes the issue. I had troubles to let Horde3D use my custom complied glfw version. It required some changes in the CMake files.

Generally, the Horde3D build files don't follow the best practices for modern CMake with targets. Maybe I will have time to prepare a pull request, but in the meantime some CMake hacking is necessary for the various issues.

algts commented 6 years ago

Should be fixed now in the develop branch (except for black output on 10.14).

algts commented 3 years ago

Works with 2.0 release. Closing.