[waffle] [PATCH 03/18] README_WIN: add some notes about configuring and building WGL
Emil Velikov
emil.l.velikov at gmail.com
Wed Jul 23 08:40:58 PDT 2014
On 23/07/14 16:13, Jose Fonseca wrote:
> On 23/07/14 04:31, Emil Velikov wrote:
>> TODO:
>> - Fill in the missing sections.
>> - Move to a better place.
>> - Double-check for typos and thinkos.
>>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>> README_WIN.txt | 157
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 157 insertions(+)
>> create mode 100644 README_WIN.txt
>>
>> diff --git a/README_WIN.txt b/README_WIN.txt
>> new file mode 100644
>> index 0000000..3665259
>> --- /dev/null
>> +++ b/README_WIN.txt
>> @@ -0,0 +1,157 @@
>> +Build Requirements
>> +==================
>> +
>> +Windows
>> +-------
>> +
>> +Cross-building under Linux
>> +--------------------------
>> +
>> +Waffle uses CMake for it build system.
>> +
>> + Archlinux: pacman -S cmake
>> + Fedora 17: yum install cmake
>> + Debian: apt-get install cmake
>> +
>> +The MinGW-W64 cross-build toolchain is recommended and its CMake wrapper.
>> +
>> + Archlinux: pacman -S mingw-w64-gcc mingw-w64-cmake (latter is in AUR)
>> + Fedora 17: yum install FINISHME
>> + Debian: apt-get install FINISHME
>> +
>> +
>> +Native builds
>> +-------------
>> +
>> + Waffle is heavily requires on the C99 standard. As such only reasonable
>> + compiler (at the time of writing) from the Microsoft Visual Compiler
>> + series is MSVC 2013. Building with older versions is likely to be broken.
>> +
>> + Waffle is not tested to build under CYGWIN. The build is likely to be
>> + broken. Patches addressing it are more than welcome.
>> +
>> +
>> +Installing
>> +==========
>> +
>> +For full details on configuring, building, and installing Waffle, see
>> +/doc/building.txt. What follows is a quick how-to.
>> +
>> +
>> +0. Be in the correct directory
>> +------------------------------
>> +
>> + git clone git://github.com/waffle-gl/waffle
>> + cd waffle
>> +
>> +or
>> +
>> + tar xvf waffle-0.0.0.tar.xz
>> + cd waffle-0.0.0
>> +
>> +
>> +1. Configure
>> +------------
>> +
>> + Currently tests are known to be broken. Make sure to pass the following
>> + cofigure option to avoid building them `-Dwaffle_build_tests=0`
>> +
>> +Cross-building under Linux
>> +--------------------------
>> +
>> + _architectures="i686-w64-mingw32 x86_64-w64-mingw32"
>> + unset LDFLAGS
>> + for _arch in ${_architectures}; do
>> + _install_prefix=/usr/${_arch}
>> + mkdir -p build-${_arch} && pushd build-${_arch}
>> + ${_arch}-cmake .. \
>> + -DCMAKE_INSTALL_PREFIX=${_install_prefix} \
>> + -DCMAKE_INSTALL_LIBDIR=${_install_prefix}/lib \
>> + -DCMAKE_BUILD_TYPE=Release \
>> + \
>> + -Dwaffle_build_tests=0 \
>> + -Dwaffle_build_manpages=0 \
>> + -Dwaffle_build_htmldocs=0 \
>> + -Dwaffle_build_examples=1
>> + make
>> + popd
>> + done
>> +
>> + Make sure to adjust _install_prefix to "" if the resulting library will
>> + not be used for further cross-building.
>> +
>> +
>> +Native builds
>> +-------------
>> +
>> + @if "%VS120COMNTOOLS%"=="" exit /b 127
>
>> + call "%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
>
> This is unnecessary when using "Visual Studio 12" or ""Visual Studio 12 Win64"
> generators -- cmake will call this batch file internally already.
>
>> +
>> + cmake -G "Visual Studio 12" -H%CD% -B%CD%\build\msvc32
>> -DCMAKE_INSTALL_PREFIX=""
>> + @if %errorlevel% neq 0 exit /b %errorlevel%
>> +
>> + call "%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat" x64
>> +
>> + cmake -G "Visual Studio 12" -H%CD% -B%CD%\build\msvc64
>> -DCMAKE_INSTALL_PREFIX=""
>> + @if %errorlevel% neq 0 exit /b %errorlevel%
>
> "Visual Studio 12" -> "Visual Studio 12 Win64"
>
>> +
>> + If building a Windows XP compatible library make sure to add
>> + `-T "v120_xp"` after the generator. For example:
>> + cmake -G "Visual Studio 12" -T "v120_xp" -H%CD% ...
>> +
>> +
>> +3. Build and Install
>> +--------------------
>> +
>> +
>> +Cross-building under Linux
>> +--------------------------
>> +
>> + _architectures="i686-w64-mingw32 x86_64-w64-mingw32"
>> + unset LDFLAGS
>> + for _arch in ${_architectures}; do
>> + pushd build-${_arch}
>> + make
>> + make install
>> + popd
>> + done
>> +
>> + Note: Running tests (make check and make check-func) are not tested but
>> + may work if the approapriate environment is setup via wine.
>> +
>> +
>> +
>> +Native builds
>> +-------------
>> +
>> + @if "%VS120COMNTOOLS%"=="" exit /b 127
>> + call "%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
>> +
>> + cmake --build %CD%\build\msvc32 --config Debug %*
>> + @if %errorlevel% neq 0 exit /b %errorlevel%
>> +
>> + call "%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat" x64
>> +
>> + cmake --build %CD%\build\msvc64 --config Debug %*
>> + @if %errorlevel% neq 0 exit /b %errorlevel%
>
> Isn't this duplicate info?
>
> Instead of breaking things into "build" "install" and "package", I'd first
> break things into platform, and then, internally split into build install
> package. Otherwise people need to jump back forth alot unnecessarily. Plus
> there's a lof of duplication.
>
Indeed it does. This is a mere copy-paste from the current README. Will need
to see with Chad what his plans are on the topic, as waffle currently forwards
people to ./doc/building.txt which seems to be missing on my tree.
Thanks for all the comments.
Emil
>> +
>> +4. Package
>> +----------
>> +
>> +Cross-building under Linux
>> +--------------------------
>> +
>> + _architectures="i686-w64-mingw32 x86_64-w64-mingw32"
>> + unset LDFLAGS
>> + for _arch in ${_architectures}; do
>> + pushd build-${_arch}
>> + make package
>> + popd
>> + done
>> +
>> +
>> +Native builds
>> +-------------
>> +
>> + WRITE ME
>>
>
More information about the waffle
mailing list