Get Windows compilation partially working

This commit is contained in:
Elnu 2022-03-11 21:25:04 -08:00
parent e18094174f
commit 38bd97148a
11 changed files with 89 additions and 36 deletions

5
build/.gitignore vendored
View file

@ -2,7 +2,4 @@ CMakeFiles
cmake_install.cmake
CMakeCache.txt
compile_commands.json
Makefile
linux/septadrop
linux/septadrop_1.0_amd64/usr/bin/septadrop
linux/septadrop_1.0_amd64.deb
Makefile

3
build/linux/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
septadrop
septadrop_1.0_amd64/usr/bin/septadrop
septadrop_1.0_amd64.deb

2
build/windows/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
SFML-2.5.1
septadrop.exe

11
build/windows/build.sh Executable file
View file

@ -0,0 +1,11 @@
if [[ ! -e SFML-2.5.1 ]]; then
DOWNLOAD=TARGET=SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit
wget https://www.sfml-dev.org/files/${DOWNLOAD}.zip
unzip ${DOWNLOAD}.zip
rm ${DOWNLOAD}.zip
fi
cmake SFML-2.5.1/ -DCMAKE_TOOLCHAIN_FILE=mingw-w64-x86_64.cmake ../..
cd ..
python3 packer.py
cd windows
cmake --build .

View file

@ -0,0 +1,35 @@
# Sample toolchain file for building for Windows from an Ubuntu Linux system.
#
# Typical usage:
# *) install cross compiler: `sudo apt-get install mingw-w64`
# *) cd build
# *) cmake -DCMAKE_TOOLCHAIN_FILE=~/mingw-w64-x86_64.cmake ..
set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
# cross compilers to use for C, C++ and Fortran
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_PREFIX}-gfortran)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
# target environment on the build host system
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
# modify default behavior of FIND_XXX() commands
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# currently disfunctional, need to set up static linking(?) and not use DLLs
# also set SFML_PATH relative to project directory
set(SFML_PATH "/home/elnu/Projects/septadrop/build/windows/SFML-2.5.1")
set(SFML_INCLUDE_DIR "${SFML_PATH}/include")
include_directories(${SFML_PATH}/include)
set(SFML_LIBRARY_DIR "${SFML_PATH}/lib")
link_directories(${SFML_PATH}/lib)
set(SFML_DIR "${SFML_PATH}/lib/cmake/SFML")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED 20)