wdas / SeExpr

SeExpr is an embeddable, arithmetic expression language that enables flexible artistic control and customization in creating computer graphics images. Example uses include procedural geometry synthesis, image synthesis, simulation control, crowd animation, and geometry deformation. https://wdas.github.io/SeExpr
https://www.disneyanimation.com/open-source/seexpr/
Other
407 stars 86 forks source link

Build process is not multiple jobs safe (cannot be parallel) #40

Closed danfe closed 5 years ago

danfe commented 8 years ago

It was reported several times in the past that the build might fail at some random stage (e.g. issue #16 also seems to be it). For me it did fail at least in two places.

===>  Building for seexpr-2.11
[  1%] Generating SeExprParserLexIn.cpp
[  2%] Generating SeExprParserLexIn.cpp
[  3%] Generating y.tab.c, y.tab.h
[  4%] Generating y.tab.c, y.tab.h
[  5%] Generating SeExprParserLex.cpp
[  6%] Generating SeExprParser.tab.h
[  7%] Generating SeExprParser.cpp
Scanning dependencies of target SeExpr
Scanning dependencies of target SeExpr-static
[  8%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExpression.o
[  9%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExpression.o
[ 10%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExprBuiltins.o
[ 11%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprBuiltins.o
[ 12%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeContext.o
[ 13%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeContext.o
[ 14%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeNoise.o
[ 15%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExprFunc.o
[ 16%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeNoise.o
[ 17%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExprNode.o
[ 18%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprFunc.o
[ 19%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprNode.o
[ 20%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeCurve.o
[ 21%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeCurve.o
[ 22%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprParserLex.o
eExprParserLexIn.cpp:1385:16: warning: function 'SeExprinput' is not needed and will not be emitted [-Wunneeded-internal-declaration]
    static int SeExprinput (void)
               ^
1 warning generated.
[ 23%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExprParserLex.o
SeExprParserLexIn.cpp:1385:16: warning: function 'SeExprinput' is not needed and will not be emitted [-Wunneeded-internal-declaration]
    static int SeExprinput (void)
               ^
1 warning generated.
[ 24%] Building CXX object src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprParser.o
[ 25%] Building CXX object src/SeExpr/CMakeFiles/SeExpr.dir/SeExprParser.o
y.tab.c:2334:3: error: use of undeclared identifier 'SeExprYYLLOC_'
  SeExprYYLLOC_
  ^
y.tab.c:2334:16: error: expected '}'
  SeExprYYLLOC_
               ^
y.tab.c:1532:1: note: to match this '{'
{
^
y.tab.c:1675:2: error: use of undeclared label 'SeExprabortlab'
        SeExprYYABORT;
        ^
y.tab.c:894:29: note: expanded from macro 'SeExprYYABORT'
#define SeExprYYABORT           goto SeExprabortlab
                                     ^
y.tab.c:1646:7: error: use of undeclared label 'SeExprexhaustedlab'
        goto SeExprexhaustedlab;
             ^
y.tab.c:1681:5: error: use of undeclared label 'SeExpracceptlab'
    SeExprYYACCEPT;
    ^
y.tab.c:893:29: note: expanded from macro 'SeExprYYACCEPT'
#define SeExprYYACCEPT  goto SeExpracceptlab
                             ^
5 errors generated.
--- src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprParser.o ---
*** [src/SeExpr/CMakeFiles/SeExpr-static.dir/SeExprParser.o] Error code 1
--- src/demos/CMakeFiles/asciiCalc.dir/all ---
--- src/demos/asciiCalc ---
[ 47%] Linking CXX executable asciiCalC
cd /wrkdirs/graphics/seexpr/SeExpr-36ffb818b8/src/demos && /usr/local/bin/cmake -E cmake_link_scri
pt CMakeFiles/asciiCalc.dir/link.txt --verbose=1
/usr/bin/c++   -fPIC  -pipe -O2 -fno-strict-aliasing -I/usr/local/include   CMakeFiles/asciiCalc.d
ir/asciiCalculator.o  -o asciiCalc  ../SeExpr/libSeExpr.so -lpthread -Wl,-rpath,/wrkdirs/graphics/
seexpr/SeExpr-36ffb818b8/src/SeExpr
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExprpos()'
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExprtext'
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExprlex()'
../SeExpr/libSeExpr.so: error: undefined reference to 'resetCounters(std::vector<char*, std::alloc
ator<char*> >*)'
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExpr_scan_string(char const*)'
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExpr_delete_buffer(SeExpr_buffer_state*)'
../SeExpr/libSeExpr.so: error: undefined reference to 'SeExprlex_destroy()'
*** [src/demos/asciiCalc] Error code 1
davvid commented 5 years ago

This may no longer be an issue but please holler if you observe otherwise.

danfe commented 5 years ago

Usually, when closing bug reports like this, a courtesy of citing particular commit(s) that [might] had addressed the raised issue(s) is expected, but I'll check, yes.