import os def build(target, options): cmd = 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%s -DBUILD_PKGCONFIG_FILES=ON' % target.directory if target.platform == 'windows': # Hack: the build fails if PATH includes /opt/windows/64/bin; I don't know why: # remove it target.set('PATH', '%s:%s' % (target.tool_path, os.environ['PATH'])) f = open('mingw.cmake', 'w') print("SET(CMAKE_SYSTEM_NAME Windows)", file=f) print("SET(CMAKE_C_COMPILER %s/%s)" % (target.tool_path, target.get('CC')), file=f) print("SET(CMAKE_RC_COMPILER %s/%s)" % (target.tool_path, target.get('WINRC')), file=f) all = "%s " % target.library_prefix print("SET(CMAKE_ROOT_FIND_PATH %s %s)" % (all, target.tool_path), file=f) print("SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)", file=f) print("SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)", file=f) print("SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)", file=f) cmd += ' -DCMAKE_TOOLCHAIN_FILE=mingw.cmake' f.close() if target.platform == 'linux': cmd += ' -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS_RELEASE="-O3 -DNDEBUG -mavx2"' if target.platform == 'osx': cmd += ' -DCMAKE_OSX_SYSROOT=%s/MacOSX%s.sdk' % (target.sdk_prefix, target.sdk) target.command(cmd) target.command('make -j%d VERBOSE=1' % target.parallel) target.command('make install')