Initial commit

master
eater 6 years ago
commit aa1af4d1d7

3
.gitmodules vendored

@ -0,0 +1,3 @@
[submodule "mxe"]
path = mxe
url = https://github.com/mxe/mxe.git

@ -0,0 +1,18 @@
# WARNING
It does not work _yet_
# OpenMW MinGW
OpenMW MinGW is a small project which sets up a Linux build environment for
Windows, by using MinGW and [mxe](https://mxe.cc).
Building all dependencies may easily take 2-3 hours, it is recommend to cache.
All files in `mxe.src` get copied into `mxe/src`
## Running
```sh
./nwah mxe openmw
```

1
mxe

@ -0,0 +1 @@
Subproject commit ecca1162cba6017c3b73348312cbebc83e3e47f3

@ -0,0 +1,33 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := bullet
$(PKG)_WEBSITE := https://bulletphysics.org/
$(PKG)_DESCR := Bullet physics, version 2
$(PKG)_VERSION := 2.86
$(PKG)_IGNORE :=
$(PKG)_SUBDIR := $(PKG)3-$($(PKG)_VERSION)
$(PKG)_CHECKSUM := e6e8b755280ce2c1a8218529eae5dd78e184f7036854229cea611374ad5a671f
$(PKG)_GH_CONF := bulletphysics/bullet3/releases
$(PKG)_URL_2 := https://github.com/bulletphysics/bullet3/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := cc
define $(PKG)_BUILD
cd '$(1)' && '$(TARGET)-cmake' . \
-DINSTALL_LIBS=ON \
-DBUILD_CPU_DEMOS=OFF \
-DBUILD_DEMOS=OFF \
-DBUILD_BULLET2_DEMOS=OFF \
-DBUILD_EXTRAS=OFF \
-DBUILD_MULTITHREADING=OFF \
-DBUILD_UNIT_TESTS=OFF \
-DUSE_CUSTOM_VECOR_MATH=OFF \
-DUSE_DOUBLE_PRECISION=OFF \
-DUSE_GLUT=OFF \
-DUSE_GRAPHICAL_BENCHMARK=OFF
$(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
'$(TARGET)-g++' \
-Wall -Wextra -std=gnu++0x \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
endef

@ -0,0 +1,18 @@
PKG := crabnet
$(PKG)_WEBSITE := https://github.com/TES3MP/CrabNet
$(PKG)_DESCR := CrabNet is a cross platform, open source, C++ networking engine for game programmers.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.001
$(PKG)_SUBDIR := CrabNet-feaute-mingw-support
$(PKG)_CHECKSUM := 52dc30b8aaf805482f1703f71b82d6f560df813ec04b858728d70ec9034e43f6
$(PKG)_GH_CONF := teamnwah/CrabNet/branches/feaute/mingw-support
$(PKG)_URL_2 := https://github.com/teamnwah/CrabNet/archive/feaute/mingw-support.tar.gz
$(PKG)_DEPS := cc
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j $(JOBS)
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include/raknet'
$(INSTALL) -m644 '$(BUILD_DIR)/include/raknet'/* '$(PREFIX)/$(TARGET)/include/raknet'
$(INSTALL) -m644 '$(BUILD_DIR)/lib/libRakNetLibStatic.a' '$(PREFIX)/$(TARGET)/lib'
endef

@ -0,0 +1,22 @@
PKG := mygui
$(PKG)_WEBSITE := https://github.com/TES3MP/CrabNet
$(PKG)_DESCR := Fast, flexible and simple GUI.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.2.1
$(PKG)_CHECKSUM := 37232d736159cd7d1a4d0291d714964505b7edc8d65cb0147533259d102f78cc
$(PKG)_GH_CONF := MyGUI/mygui/releases,MyGUI
$(PKG)_URL_2 := https://github.com/MyGUI/mygui/archive/MyGUI$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := cc freetype zlib
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
-DMYGUI_RENDERSYSTEM=1 \
-DMYGUI_BUILD_DEMOS=OFF \
-DMYGUI_BUILD_TOOLS=OFF \
-DMYGUI_BUILD_PLUGINS=OFF \
-DMYGUI_STATIC=ON \
-DMYGUI_STANDALONE_BUILD=ON
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
endef

@ -0,0 +1,28 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0087edb2..28960a4f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -282,15 +282,6 @@ ELSE()
int main() {return 0;}" HAVE_GCC_DESTRUCTOR)
ENDIF()
-# Set visibility/export options if available
-IF(WIN32)
- SET(EXPORT_DECL "__declspec(dllexport)")
- IF(NOT MINGW)
- SET(ALIGN_DECL "__declspec(align(x))")
- ELSE()
- SET(ALIGN_DECL "__declspec(aligned(x))")
- ENDIF()
-ELSE()
SET(OLD_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
# Yes GCC, really don't accept visibility modes you don't support
SET(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS} -Wattributes -Werror")
@@ -321,7 +312,6 @@ ELSE()
ENDIF()
SET(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS}")
-ENDIF()
SET(SSE_SWITCH "")
SET(SSE2_SWITCH "")

@ -0,0 +1,32 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := openal
$(PKG)_WEBSITE := https://openal-soft.org/
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.16.0
$(PKG)_CHECKSUM := 2f3dcd313fe26391284fbf8596863723f99c65d6c6846dccb48e79cadaf40d5f
$(PKG)_SUBDIR := openal-soft-$($(PKG)_VERSION)
$(PKG)_FILE := openal-soft-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://openal-soft.org/openal-releases/$($(PKG)_FILE)
$(PKG)_DEPS := cc portaudio
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://openal-soft.org/openal-releases/?C=M;O=D' | \
$(SED) -n 's,.*"openal-soft-\([0-9][^"]*\)\.tar.*,\1,p' | \
$(SORT) -V | \
tail -1
endef
define $(PKG)_BUILD
cd '$(1)/build' && '$(TARGET)-cmake' .. \
-DALSOFT_EXAMPLES=FALSE \
-DALSOFT_UTILS=FALSE \
-DALSOFT_BUILD_IMPORT_LIB=FALSE
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-openal.exe' \
`'$(TARGET)-pkg-config' openal --cflags --libs`
endef

@ -0,0 +1,13 @@
diff --git a/IlmImf/ImfDwaCompressor.h b/IlmImf/ImfDwaCompressor.h
index 654ae790..ae80ca4e 100644
--- a/IlmImf/ImfDwaCompressor.h
+++ b/IlmImf/ImfDwaCompressor.h
@@ -71,7 +71,7 @@ class DwaCompressor: public Compressor
virtual int numScanLines () const;
- virtual Imf::Compressor::Format format () const;
+ virtual Format format () const;
virtual int compress (const char *inPtr,
int inSize,

@ -0,0 +1,161 @@
diff --git a/IlmImf/ImfDwaCompressor.cpp b/IlmImf/ImfDwaCompressor.cpp
index 1c1bd454..8bfc7d6f 100644
--- a/IlmImf/ImfDwaCompressor.cpp
+++ b/IlmImf/ImfDwaCompressor.cpp
@@ -1845,7 +1845,7 @@ DwaCompressor::numScanLines() const
}
-Imf::Compressor::Format
+Compressor::Format
DwaCompressor::format() const
{
if (GLOBAL_SYSTEM_LITTLE_ENDIAN)
@@ -1927,7 +1927,7 @@ DwaCompressor::compress
_outBuffer = new char[outBufferSize];
}
- char *outDataPtr = &_outBuffer[NUM_SIZES_SINGLE * sizeof(Imf::Int64) +
+ char *outDataPtr = &_outBuffer[NUM_SIZES_SINGLE * sizeof(Int64) +
channelRuleSize];
//
@@ -1980,7 +1980,7 @@ DwaCompressor::compress
if (fileVersion >= 2)
{
- char *writePtr = &_outBuffer[NUM_SIZES_SINGLE * sizeof(Imf::Int64)];
+ char *writePtr = &_outBuffer[NUM_SIZES_SINGLE * sizeof(Int64)];
Xdr::write<CharPtrIO> (writePtr, channelRuleSize);
for (size_t i = 0; i < channelRules.size(); ++i)
@@ -2011,7 +2011,7 @@ DwaCompressor::compress
continue;
rowPtrs[chan].push_back(inDataPtr);
- inDataPtr += cd->width * Imf::pixelTypeSize(cd->type);
+ inDataPtr += cd->width * pixelTypeSize(cd->type);
}
}
@@ -2111,7 +2111,7 @@ DwaCompressor::compress
for (int x = 0; x < cd->width; ++x)
{
for (int byte = 0;
- byte < Imf::pixelTypeSize (cd->type);
+ byte < pixelTypeSize (cd->type);
++byte)
{
@@ -2119,7 +2119,7 @@ DwaCompressor::compress
}
}
- *rleRawSize += cd->width * Imf::pixelTypeSize(cd->type);
+ *rleRawSize += cd->width * pixelTypeSize(cd->type);
}
break;
@@ -2131,7 +2131,7 @@ DwaCompressor::compress
//
{
- int scanlineSize = cd->width * Imf::pixelTypeSize(cd->type);
+ int scanlineSize = cd->width * pixelTypeSize(cd->type);
for (unsigned int y = 0; y < rowPtrs[chan].size(); ++y)
{
@@ -2650,7 +2650,7 @@ DwaCompressor::uncompress
continue;
rowPtrs[chan].push_back (outBufferEnd);
- outBufferEnd += cd->width * Imf::pixelTypeSize (cd->type);
+ outBufferEnd += cd->width * pixelTypeSize (cd->type);
}
}
@@ -2702,7 +2702,7 @@ DwaCompressor::uncompress
continue;
ChannelData *cd = &_channelData[chan];
- int pixelSize = Imf::pixelTypeSize (cd->type);
+ int pixelSize = pixelTypeSize (cd->type);
switch (cd->compression)
{
@@ -2794,7 +2794,7 @@ DwaCompressor::uncompress
{
int row = 0;
- int dstScanlineSize = cd->width * Imf::pixelTypeSize (cd->type);
+ int dstScanlineSize = cd->width * pixelTypeSize (cd->type);
for (int y = minY; y <= maxY; ++y)
{
@@ -2940,7 +2940,7 @@ DwaCompressor::initializeBuffers (size_t &outBufferSize)
//
int rleAmount = 2 * numScanLines() * (_max[0] - _min[0] + 1) *
- Imf::pixelTypeSize (_channelData[chan].type);
+ pixelTypeSize (_channelData[chan].type);
rleBufferSize += rleAmount;
}
@@ -2950,7 +2950,7 @@ DwaCompressor::initializeBuffers (size_t &outBufferSize)
case UNKNOWN:
unknownBufferSize += numScanLines() * (_max[0] - _min[0] + 1) *
- Imf::pixelTypeSize (_channelData[chan].type);
+ pixelTypeSize (_channelData[chan].type);
break;
default:
@@ -3073,13 +3073,13 @@ DwaCompressor::initializeBuffers (size_t &outBufferSize)
case RLE:
planarUncBufferSize[RLE] +=
numScanLines() * (_max[0] - _min[0] + 1) *
- Imf::pixelTypeSize (_channelData[chan].type);
+ pixelTypeSize (_channelData[chan].type);
break;
case UNKNOWN:
planarUncBufferSize[UNKNOWN] +=
numScanLines() * (_max[0] - _min[0] + 1) *
- Imf::pixelTypeSize (_channelData[chan].type);
+ pixelTypeSize (_channelData[chan].type);
break;
default:
@@ -3386,11 +3386,11 @@ DwaCompressor::setupChannelData (int minX, int minY, int maxX, int maxY)
{
ChannelData *cd = &_channelData[chan];
- cd->width = Imf::numSamples (cd->xSampling, minX, maxX);
- cd->height = Imf::numSamples (cd->ySampling, minY, maxY);
+ cd->width = numSamples (cd->xSampling, minX, maxX);
+ cd->height = numSamples (cd->ySampling, minY, maxY);
cd->planarUncSize =
- cd->width * cd->height * Imf::pixelTypeSize (cd->type);
+ cd->width * cd->height * pixelTypeSize (cd->type);
cd->planarUncBuffer = planarUncBuffer[cd->compression];
cd->planarUncBufferEnd = cd->planarUncBuffer;
@@ -3398,7 +3398,7 @@ DwaCompressor::setupChannelData (int minX, int minY, int maxX, int maxY)
cd->planarUncRle[0] = cd->planarUncBuffer;
cd->planarUncRleEnd[0] = cd->planarUncRle[0];
- for (int byte = 1; byte < Imf::pixelTypeSize(cd->type); ++byte)
+ for (int byte = 1; byte < pixelTypeSize(cd->type); ++byte)
{
cd->planarUncRle[byte] =
cd->planarUncRle[byte-1] + cd->width * cd->height;
@@ -3416,7 +3416,7 @@ DwaCompressor::setupChannelData (int minX, int minY, int maxX, int maxY)
else
{
planarUncBuffer[cd->compression] +=
- cd->width * cd->height * Imf::pixelTypeSize (cd->planarUncType);
+ cd->width * cd->height * pixelTypeSize (cd->planarUncType);
}
}
}

@ -0,0 +1,62 @@
diff --git a/IlmImf/ImfZip.cpp b/IlmImf/ImfZip.cpp
index 93d625e1..7268e948 100644
--- a/IlmImf/ImfZip.cpp
+++ b/IlmImf/ImfZip.cpp
@@ -42,14 +42,14 @@
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
-Imf::Zip::Zip(size_t maxRawSize):
+Zip::Zip(size_t maxRawSize):
_maxRawSize(maxRawSize),
_tmpBuffer(0)
{
_tmpBuffer = new char[_maxRawSize];
}
-Imf::Zip::Zip(size_t maxScanLineSize, size_t numScanLines):
+Zip::Zip(size_t maxScanLineSize, size_t numScanLines):
_maxRawSize(0),
_tmpBuffer(0)
{
@@ -57,19 +57,19 @@ Imf::Zip::Zip(size_t maxScanLineSize, size_t numScanLines):
_tmpBuffer = new char[_maxRawSize];
}
-Imf::Zip::~Zip()
+Zip::~Zip()
{
if (_tmpBuffer) delete[] _tmpBuffer;
}
size_t
-Imf::Zip::maxRawSize()
+Zip::maxRawSize()
{
return _maxRawSize;
}
size_t
-Imf::Zip::maxCompressedSize()
+Zip::maxCompressedSize()
{
return uiAdd (uiAdd (_maxRawSize,
size_t (ceil (_maxRawSize * 0.01))),
@@ -77,7 +77,7 @@ Imf::Zip::maxCompressedSize()
}
int
-Imf::Zip::compress(const char *raw, int rawSize, char *compressed)
+Zip::compress(const char *raw, int rawSize, char *compressed)
{
//
// Reorder the pixel data.
@@ -136,7 +136,7 @@ Imf::Zip::compress(const char *raw, int rawSize, char *compressed)
}
int
-Imf::Zip::uncompress(const char *compressed, int compressedSize,
+Zip::uncompress(const char *compressed, int compressedSize,
char *raw)
{
//

@ -0,0 +1,42 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ccfbfa55..3c2047dd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,8 +225,8 @@ endif()
if(QT_STATIC)
if(WIN32)
if(DESIRED_QT_VERSION MATCHES 4)
- # QtCore needs WSAAsyncSelect from Ws2_32.lib
- set(QT_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY} Ws2_32.lib)
+ # QtCore needs WSAAsyncSelect from ws2_32.lib
+ set(QT_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY} ws2_32.lib)
message("QT_QTCORE_LIBRARY: ${QT_QTCORE_LIBRARY}")
endif()
endif()
diff --git a/cmake/FindOSGPlugins.cmake b/cmake/FindOSGPlugins.cmake
index 8220f33d4..2654bf5d5 100644
--- a/cmake/FindOSGPlugins.cmake
+++ b/cmake/FindOSGPlugins.cmake
@@ -28,9 +28,7 @@ foreach(_library ${OSGPlugins_FIND_COMPONENTS})
set(${_library_uc}_DIR ${OSGPlugins_LIB_DIR}) # to help function osg_find_library
set(_saved_lib_prefix ${CMAKE_FIND_LIBRARY_PREFIXES}) # save CMAKE_FIND_LIBRARY_PREFIXES
- set(CMAKE_FIND_LIBRARY_PREFIXES "") # search libraries with no prefix
osg_find_library(${_library_uc} ${_library}) # find it into ${_library_uc}_LIBRARIES
- set(CMAKE_FIND_LIBRARY_PREFIXES ${_saved_lib_prefix}) # restore prefix
if (${_library_uc}_LIBRARIES)
set(${_component}_LIBRARY ${${_library_uc}_LIBRARIES}) # fake as if we call find_library
diff --git a/components/files/windowspath.cpp b/components/files/windowspath.cpp
index 2354e6f31..36290db9a 100644
--- a/components/files/windowspath.cpp
+++ b/components/files/windowspath.cpp
@@ -6,7 +6,7 @@
#include <shlobj.h>
#include <shlwapi.h>
-#include <WinReg.h>
+#include <winreg.h>
#include <boost/locale.hpp>
namespace bconv = boost::locale::conv;

@ -0,0 +1,163 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3c2047dd5..d209037c0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -219,7 +219,7 @@ if(OSG_STATIC)
add_definitions(-DOSG_LIBRARY_STATIC)
find_package(OSGPlugins REQUIRED COMPONENTS ${USED_OSG_PLUGINS})
- list(APPEND OPENSCENEGRAPH_LIBRARIES ${OSGPlugins_LIBRARIES})
+ list(APPEND OPENSCENEGRAPH_LIBRARIES "-Wl,-Bstatic" ${OSGPlugins_LIBRARIES})
endif()
if(QT_STATIC)
@@ -470,7 +470,7 @@ if(WIN32)
INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/Debug/resources" DESTINATION "." CONFIGURATIONS Debug)
INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/Release/resources" DESTINATION "." CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel)
-
+
FILE(GLOB plugin_dir_debug "${OpenMW_BINARY_DIR}/Debug/osgPlugins-*")
FILE(GLOB plugin_dir_release "${OpenMW_BINARY_DIR}/Release/osgPlugins-*")
INSTALL(DIRECTORY ${plugin_dir_debug} DESTINATION "." CONFIGURATIONS Debug)
@@ -837,4 +837,3 @@ if (DOXYGEN_FOUND)
WORKING_DIRECTORY ${OpenMW_BINARY_DIR}
COMMENT "Generating documentation for the github-pages at ${DOXYGEN_PAGES_OUTPUT_DIR}" VERBATIM)
endif ()
-
diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt
index 0092712db..fc29e0c0b 100644
--- a/apps/openmw/CMakeLists.txt
+++ b/apps/openmw/CMakeLists.txt
@@ -97,6 +97,8 @@ add_openmw_dir (mwbase
# Main executable
+link_libraries("-static")
+
if (NOT ANDROID)
openmw_add_executable(openmw
${OPENMW_FILES}
@@ -111,6 +113,13 @@ else ()
)
endif ()
+add_custom_command(
+ TARGET openmw
+ PRE_LINK
+ COMMAND sed 's:-Wl,-Bdynamic::g' -i /home/eater/projects/openmw-mingw/mxe/tmp-openmw-x86_64-w64-mingw32.static/openmw-openmw-0.45.0.build_/apps/openmw/CMakeFiles/openmw.dir/linklibs.rsp
+)
+
+
# Sound stuff - here so CMake doesn't stupidly recompile EVERYTHING
# when we change the backend.
include_directories(
@@ -118,6 +127,8 @@ include_directories(
)
target_link_libraries(openmw
+ "-Wl,-Bstatic"
+ ${OPENMW_CUSTOM_FLAGS}
${OSG_LIBRARIES}
${OPENTHREADS_LIBRARIES}
${OSGPARTICLE_LIBRARIES}
@@ -138,7 +149,7 @@ target_link_libraries(openmw
components
)
-if (ANDROID)
+# if (ANDROID)
set (OSG_PLUGINS
-Wl,--whole-archive
)
@@ -151,24 +162,24 @@ if (ANDROID)
)
target_link_libraries(openmw
- EGL
- android
+# EGL
+# android
log
dl
z
${OPENSCENEGRAPH_LIBRARIES}
freetype
jpeg
- png
+ png
)
-endif (ANDROID)
+# endif (ANDROID)
if (USE_SYSTEM_TINYXML)
target_link_libraries(openmw ${TinyXML_LIBRARIES})
endif()
if (NOT UNIX)
-target_link_libraries(openmw ${SDL2MAIN_LIBRARY})
+target_link_libraries(openmw "-Wl,-Bstatic" ${SDL2MAIN_LIBRARY})
endif()
# Fix for not visible pthreads functions for linker with glibc 2.15
diff --git a/cmake/FindMyGUI.cmake b/cmake/FindMyGUI.cmake
index 473f543ba..2dc820922 100644
--- a/cmake/FindMyGUI.cmake
+++ b/cmake/FindMyGUI.cmake
@@ -37,7 +37,7 @@ libfind_pkg_detect(MyGUI MyGUI${MYGUI_STATIC_SUFFIX} MYGUI${MYGUI_STATIC_SUFFIX}
HINTS $ENV{MYGUI_HOME}/lib
PATH_SUFFIXES "" release relwithdebinfo minsizerel
)
-if (MYGUI_STATIC AND (APPLE OR ANDROID))
+if (MYGUI_STATIC)
# we need explicit Freetype libs only on OS X and ANDROID for static build
libfind_package(MyGUI Freetype)
endif()
@@ -48,6 +48,8 @@ libfind_version_n_header(MyGUI
)
libfind_process(MyGUI)
+set(MyGUI_LIBRARIES "-Wl,-Bstatic" ${MyGUI_LIBRARIES})
+
if (MyGUI_Debug_FOUND)
set(MyGUI_LIBRARIES optimized ${MyGUI_LIBRARIES} debug ${MyGUI_Debug_LIBRARIES})
endif()
diff --git a/cmake/FindOSGPlugins.cmake b/cmake/FindOSGPlugins.cmake
index 2654bf5d5..e0c3af930 100644
--- a/cmake/FindOSGPlugins.cmake
+++ b/cmake/FindOSGPlugins.cmake
@@ -45,4 +45,5 @@ foreach(_dependency PNG ZLIB JPEG) # needed by osgdb_png or osgdb_jpeg
#list(APPEND OSGPlugins_PROCESS_LIBS ${_dependency}_LIBRARY)
endforeach()
+libfind_package(OSGPlugin openexr)
libfind_process(OSGPlugins)
diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt
index 5c245afd0..d282fa6ba 100644
--- a/components/CMakeLists.txt
+++ b/components/CMakeLists.txt
@@ -197,6 +197,7 @@ include_directories(${Bullet_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
add_library(components STATIC ${COMPONENT_FILES} ${MOC_SRCS} ${ESM_UI_HDR})
target_link_libraries(components
+ "-Wl,-Bstatic"
${Boost_SYSTEM_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
@@ -218,6 +219,7 @@ target_link_libraries(components
if (WIN32)
target_link_libraries(components
+ "-Wl,-Bstatic"
${Boost_LOCALE_LIBRARY})
endif()
@@ -236,7 +238,7 @@ if (GIT_CHECKOUT)
endif (GIT_CHECKOUT)
if (WIN32)
- target_link_libraries(components shlwapi)
+ target_link_libraries(components "-Wl,-Bstatic" shlwapi)
if(MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOGDI")
endif(MINGW)

@ -0,0 +1,15 @@
diff --git a/apps/openmw/mwsound/openal_output.hpp b/apps/openmw/mwsound/openal_output.hpp
index b6a26c99a..6ce10d940 100644
--- a/apps/openmw/mwsound/openal_output.hpp
+++ b/apps/openmw/mwsound/openal_output.hpp
@@ -6,8 +6,8 @@
#include <map>
#include <deque>
-#include "alc.h"
-#include "al.h"
+#include "AL/alc.h"
+#include "AL/al.h"
#include "alext.h"
#include "sound_output.hpp"

@ -0,0 +1,35 @@
PKG := openmw
$(PKG)_DESCR := Fast, flexible and simple GUI.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.45.0
$(PKG)_SUBDIR := openmw-openmw-$($(PKG)_VERSION)
$(PKG)_CHECKSUM := b63cf971f406ef5f28019f65e9e2bd9641a227459ede45d147562917f67e1c64
$(PKG)_GH_CONF := openmw/openmw/releases
$(PKG)_URL_2 := https://github.com/openmw/openmw/archive/openmw-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := cc bullet qt openscenegraph boost ffmpeg openal sdl2 mygui
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
-DMyGUI_LIBRARY=$(PREFIX)/$(TARGET)/lib/Release/libMyGUIEngineStatic.a \
-DMYGUI_STATIC=ON \
-DBOOST_STATIC=ON \
-DSDL2_STATIC=ON \
-DOSG_STATIC=ON \
-DQT_STATIC=ON \
-DRECASTNAVIGATION_STATIC=ON \
-DBUILD_OPENCS=OFF \
-DBUILD_NIFTEST=OFF \
-DBUILD_LAUNCHER=OFF \
-DBUILD_WIZARD=OFF \
-DBUILD_MWINIIMPORTER=OFF \
-DBUILD_ESSIMPORTER=OFF \
-DBUILD_BSATOOL=OFF \
-DBUILD_ESMTOOL=OFF \
-DBoost_ALL_NO_LIB=ON \
-DCMAKE_BUILD_TYPE=None \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_CXX_FLAGS="-static -Wa,-mbig-obj -Wl,-Bstatic" \
-DOPENMW_CUSTOM_FLAGS="-Wl,-Bstatic $(PREFIX)/$(TARGET)/lib/libOpenAL32.a `$(TARGET)-pkg-config --cflags --libs openal freetype2 sdl2 gl libavcodec libavdevice libavfilter libavformat libavresample libavutil`"
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
endef

@ -0,0 +1,31 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := openscenegraph
$(PKG)_WEBSITE := http://www.openscenegraph.org/
$(PKG)_DESCR := OpenSceneGraph
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.6
$(PKG)_CHECKSUM := 7f27ad127e768544be8bc81209e9447352089400980fc27c11717c72885cedaa
$(PKG)_GH_CONF := OpenMW/osg/branches/3.6
$(PKG)_SUBDIR := osg-$($(PKG)_VERSION)
$(PKG)_URL_2 := https://github.com/OpenMW/osg/archive/3.6.tar.gz
$(PKG)_DEPS := cc boost curl dcmtk freetype gdal giflib gstreamer \
gta jasper jpeg libpng openal openexr openthreads poppler \
tiff zlib
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && '$(TARGET)-cmake' '$(SOURCE_DIR)' \
-DCMAKE_CXX_FLAGS='-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS' \
-DCMAKE_HAVE_PTHREAD_H=OFF \
-DOSG_DETERMINE_WIN_VERSION=OFF \
-DPKG_CONFIG_EXECUTABLE='$(PREFIX)/bin/$(TARGET)-pkg-config' \
-DDYNAMIC_OPENTHREADS=$(CMAKE_SHARED_BOOL) \
-DDYNAMIC_OPENSCENEGRAPH=$(CMAKE_SHARED_BOOL) \
-DBUILD_OSG_APPLICATIONS=OFF \
-DPOPPLER_HAS_CAIRO_EXITCODE=0 \
-D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS_EXITCODE=1 \
-D_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED=1
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
endef

54
nwah

@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -e;
# Repository used for OpenMW
DEFAULT_OPENMW_REPO="https://github.com/OpenMW/openmw.git"
# Branch to checkout and build (can also take tags)
DEFAULT_OPENMW_BRANCH="0.45.0"
# Dependencies that should be build for
DEFAULT_OPENMW_DEPS="bullet qt openscenegraph boost ffmpeg openal sdl2 mygui"
# Default target we should build.
DEFAULT_OPENMW_TARGET="x86_64-w64-mingw32.static"
# If tes3mp should be built
OPENMW_TES3MP=${OPENMW_TES3MP:-0}
if [ "${OPENMW_TES3MP}" = "1" ]; then
DEFAULT_OPENMW_REPO="https://github.com/TES3MP/openmw-tes3mp"
DEFAULT_OPENMW_BRANCH="0.7.0-alpha"
DEFAULT_OPENMW_DEPS+=" lua crabnet"
fi
# Set working values
OPENMW_REPO=${OPENMW_REPO:-${DEFAULT_OPENMW_REPO}}
OPENMW_BRANCH=${OPENMW_BRANCH:-${DEFAULT_OPENMW_BRANCH}}
OPENMW_DEPS=${OPENMW_DEPS:-${DEFAULT_OPENMW_DEPS}}
OPENMW_TARGET=${OPENMW_TARGET:-${DEFAULT_OPENMW_TARGET}}
# Set PWD correctly for script
cd "$(dirname "$(realpath "$0")")"
nwah_mxe() {
cp -u mxe.src/* mxe/src;
test -f mxe/src/bullet-1-pkgconfig.patch && rm mxe/src/bullet-1-pkgconfig.patch;
pushd mxe;
echo "> mxe: make $@"
make MXE_TARGETS="${OPENMW_TARGET}" "$@";
}
main() {
local naked_cmd="${1}"
local cmd="nwah_${1}";
shift;
if [ "$(type -t "${cmd}")" != "function" ]; then
echo "No command found ${naked_cmd}";
nwah_usage;
exit 1;
fi
${cmd} "$@";
}
main "$@"
Loading…
Cancel
Save