@@ -95,24 +95,37 @@ def stage(text):
9595 emscripten .Building .emcc ('glue.cpp' , args , 'glue.bc' )
9696 assert (os .path .exists ('glue.bc' ))
9797
98- if not os .path .exists ('config.h' ):
99- stage ('Configure (if this fails, run autogen.sh in bullet/ first)' )
100-
101- emscripten .Building .configure (['../configure' , '--disable-demos' ,'--disable-dependency-tracking' ])
98+ # Configure with CMake on Windows, and with configure on Unix.
99+ cmake_build = emscripten .WINDOWS
100+
101+ if cmake_build :
102+ if not os .path .exists ('CMakeCache.txt' ):
103+ stage ('Configure via CMake' )
104+ emscripten .Building .configure ([emscripten .PYTHON , os .path .join (EMSCRIPTEN_ROOT , 'emcmake' ), 'cmake' , '..' , '-DBUILD_DEMOS=OFF' , '-DBUILD_EXTRAS=OFF' , '-DBUILD_CPU_DEMOS=OFF' , '-DUSE_GLUT=OFF' , '-DCMAKE_BUILD_TYPE=Release' ])
105+ else :
106+ if not os .path .exists ('config.h' ):
107+ stage ('Configure (if this fails, run autogen.sh in bullet/ first)' )
108+ emscripten .Building .configure (['../configure' , '--disable-demos' ,'--disable-dependency-tracking' ])
102109
103110 stage ('Make' )
104111
105- emscripten .Building .make (['make' , '-j' ])
112+ if emscripten .WINDOWS :
113+ emscripten .Building .make (['mingw32-make' , '-j' ])
114+ else :
115+ emscripten .Building .make (['make' , '-j' ])
106116
107117 stage ('Link' )
108118
109- emscripten .Building .link ([
110- 'glue.bc' ,
111- os .path .join ('src' , '.libs' , 'libBulletDynamics.a' ),
112- os .path .join ('src' , '.libs' , 'libBulletCollision.a' ),
113- os .path .join ('src' , '.libs' , 'libLinearMath.a' )
114- ],
115- 'libbullet.bc' )
119+ if cmake_build :
120+ bullet_libs = [os .path .join ('src' , 'BulletDynamics' , 'libBulletDynamics.a' ),
121+ os .path .join ('src' , 'BulletCollision' , 'libBulletCollision.a' ),
122+ os .path .join ('src' , 'LinearMath' , 'libLinearMath.a' )]
123+ else :
124+ bullet_libs = [os .path .join ('src' , '.libs' , 'libBulletDynamics.a' ),
125+ os .path .join ('src' , '.libs' , 'libBulletCollision.a' ),
126+ os .path .join ('src' , '.libs' , 'libLinearMath.a' )]
127+
128+ emscripten .Building .link (['glue.bc' ] + bullet_libs , 'libbullet.bc' )
116129 assert os .path .exists ('libbullet.bc' )
117130
118131 stage ('emcc: ' + ' ' .join (emcc_args ))
0 commit comments