Index: libraries/source/fcollada/src/meson.build =================================================================== --- /dev/null +++ libraries/source/fcollada/src/meson.build @@ -0,0 +1,189 @@ +cpp_args = ['-DRETAIL'] + +if host_machine.system() == 'linux' + cpp_args += '-DLINUX' +endif + +if get_option('buildtype') == 'release' + cpp_args += '-DNDEBUG' +else + cpp_args += '-D_DEBUG' +endif + +# FCollada is not aliasing-safe, so disallow dangerous optimisations +# (TODO: It'd be nice to fix FCollada, but that looks hard) +cpp_args += '-fno-strict-aliasing' + +sources = [ + 'FCollada/FCollada.cpp', + 'FCollada/FColladaPlugin.cpp', + 'FCollada/FCDocument/FCDAnimated.cpp', + 'FCollada/FCDocument/FCDAnimationChannel.cpp', + 'FCollada/FCDocument/FCDAnimationClip.cpp', + 'FCollada/FCDocument/FCDAnimationClipTools.cpp', + 'FCollada/FCDocument/FCDAnimation.cpp', + 'FCollada/FCDocument/FCDAnimationCurve.cpp', + 'FCollada/FCDocument/FCDAnimationCurveTools.cpp', + 'FCollada/FCDocument/FCDAnimationKey.cpp', + 'FCollada/FCDocument/FCDAnimationMultiCurve.cpp', + 'FCollada/FCDocument/FCDAsset.cpp', + 'FCollada/FCDocument/FCDCamera.cpp', + 'FCollada/FCDocument/FCDController.cpp', + 'FCollada/FCDocument/FCDControllerInstance.cpp', + 'FCollada/FCDocument/FCDControllerTools.cpp', + 'FCollada/FCDocument/FCDEffectCode.cpp', + 'FCollada/FCDocument/FCDEffect.cpp', + 'FCollada/FCDocument/FCDEffectParameter.cpp', + 'FCollada/FCDocument/FCDEffectParameterFactory.cpp', + 'FCollada/FCDocument/FCDEffectParameterSampler.cpp', + 'FCollada/FCDocument/FCDEffectParameterSurface.cpp', + 'FCollada/FCDocument/FCDEffectPass.cpp', + 'FCollada/FCDocument/FCDEffectPassShader.cpp', + 'FCollada/FCDocument/FCDEffectPassState.cpp', + 'FCollada/FCDocument/FCDEffectProfile.cpp', + 'FCollada/FCDocument/FCDEffectProfileFX.cpp', + 'FCollada/FCDocument/FCDEffectStandard.cpp', + 'FCollada/FCDocument/FCDEffectTechnique.cpp', + 'FCollada/FCDocument/FCDEffectTools.cpp', + 'FCollada/FCDocument/FCDEmitter.cpp', + 'FCollada/FCDocument/FCDEmitterInstance.cpp', + 'FCollada/FCDocument/FCDEmitterObject.cpp', + 'FCollada/FCDocument/FCDEmitterParticle.cpp', + 'FCollada/FCDocument/FCDEntity.cpp', + 'FCollada/FCDocument/FCDEntityInstance.cpp', + 'FCollada/FCDocument/FCDEntityReference.cpp', + 'FCollada/FCDocument/FCDExternalReferenceManager.cpp', + 'FCollada/FCDocument/FCDExtra.cpp', + 'FCollada/FCDocument/FCDForceDeflector.cpp', + 'FCollada/FCDocument/FCDForceDrag.cpp', + 'FCollada/FCDocument/FCDForceField.cpp', + 'FCollada/FCDocument/FCDForceGravity.cpp', + 'FCollada/FCDocument/FCDForcePBomb.cpp', + 'FCollada/FCDocument/FCDForceWind.cpp', + 'FCollada/FCDocument/FCDGeometry.cpp', + 'FCollada/FCDocument/FCDGeometryInstance.cpp', + 'FCollada/FCDocument/FCDGeometryMesh.cpp', + 'FCollada/FCDocument/FCDGeometryNURBSSurface.cpp', + 'FCollada/FCDocument/FCDGeometryPolygons.cpp', + 'FCollada/FCDocument/FCDGeometryPolygonsInput.cpp', + 'FCollada/FCDocument/FCDGeometryPolygonsTools.cpp', + 'FCollada/FCDocument/FCDGeometrySource.cpp', + 'FCollada/FCDocument/FCDGeometrySpline.cpp', + 'FCollada/FCDocument/FCDImage.cpp', + 'FCollada/FCDocument/FCDLibrary.cpp', + 'FCollada/FCDocument/FCDLight.cpp', + 'FCollada/FCDocument/FCDLightTools.cpp', + 'FCollada/FCDocument/FCDMaterial.cpp', + 'FCollada/FCDocument/FCDMaterialInstance.cpp', + 'FCollada/FCDocument/FCDMorphController.cpp', + 'FCollada/FCDocument/FCDObject.cpp', + 'FCollada/FCDocument/FCDObjectWithId.cpp', + 'FCollada/FCDocument/FCDocument.cpp', + 'FCollada/FCDocument/FCDocumentTools.cpp', + 'FCollada/FCDocument/FCDParameterAnimatable.cpp', + 'FCollada/FCDocument/FCDParticleModifier.cpp', + 'FCollada/FCDocument/FCDPhysicsAnalyticalGeometry.cpp', + 'FCollada/FCDocument/FCDPhysicsForceFieldInstance.cpp', + 'FCollada/FCDocument/FCDPhysicsMaterial.cpp', + 'FCollada/FCDocument/FCDPhysicsModel.cpp', + 'FCollada/FCDocument/FCDPhysicsModelInstance.cpp', + 'FCollada/FCDocument/FCDPhysicsRigidBody.cpp', + 'FCollada/FCDocument/FCDPhysicsRigidBodyInstance.cpp', + 'FCollada/FCDocument/FCDPhysicsRigidBodyParameters.cpp', + 'FCollada/FCDocument/FCDPhysicsRigidConstraint.cpp', + 'FCollada/FCDocument/FCDPhysicsRigidConstraintInstance.cpp', + 'FCollada/FCDocument/FCDPhysicsScene.cpp', + 'FCollada/FCDocument/FCDPhysicsShape.cpp', + 'FCollada/FCDocument/FCDPlaceHolder.cpp', + 'FCollada/FCDocument/FCDSceneNode.cpp', + 'FCollada/FCDocument/FCDSceneNodeIterator.cpp', + 'FCollada/FCDocument/FCDSceneNodeTools.cpp', + 'FCollada/FCDocument/FCDSkinController.cpp', + 'FCollada/FCDocument/FCDTargetedEntity.cpp', + 'FCollada/FCDocument/FCDTexture.cpp', + 'FCollada/FCDocument/FCDTransform.cpp', + 'FCollada/FCDocument/FCDVersion.cpp', + 'FCollada/FMath/FMAllocator.cpp', + 'FCollada/FMath/FMAngleAxis.cpp', + 'FCollada/FMath/FMColor.cpp', + 'FCollada/FMath/FMInterpolation.cpp', + 'FCollada/FMath/FMLookAt.cpp', + 'FCollada/FMath/FMMatrix33.cpp', + 'FCollada/FMath/FMMatrix44.cpp', + 'FCollada/FMath/FMQuaternion.cpp', + 'FCollada/FMath/FMRandom.cpp', + 'FCollada/FMath/FMSkew.cpp', + 'FCollada/FMath/FMVector3.cpp', + 'FCollada/FMath/FMVolume.cpp', + 'FCollada/FUtils/FUAssert.cpp', + 'FCollada/FUtils/FUBase64.cpp', + 'FCollada/FUtils/FUBoundingBox.cpp', + 'FCollada/FUtils/FUBoundingSphere.cpp', + 'FCollada/FUtils/FUCrc32.cpp', + 'FCollada/FUtils/FUCriticalSection.cpp', + 'FCollada/FUtils/FUDaeEnum.cpp', + 'FCollada/FUtils/FUDateTime.cpp', + 'FCollada/FUtils/FUDebug.cpp', + 'FCollada/FUtils/FUError.cpp', + 'FCollada/FUtils/FUErrorLog.cpp', + 'FCollada/FUtils/FUFile.cpp', + 'FCollada/FUtils/FUFileManager.cpp', + 'FCollada/FUtils/FULogFile.cpp', + 'FCollada/FUtils/FUObject.cpp', + 'FCollada/FUtils/FUObjectType.cpp', + 'FCollada/FUtils/FUParameter.cpp', + 'FCollada/FUtils/FUParameterizable.cpp', + 'FCollada/FUtils/FUPluginManager.cpp', + 'FCollada/FUtils/FUSemaphore.cpp', + 'FCollada/FUtils/FUStringBuilder.cpp', + 'FCollada/FUtils/FUStringConversion.cpp', + 'FCollada/FUtils/FUSynchronizableObject.cpp', + 'FCollada/FUtils/FUThread.cpp', + 'FCollada/FUtils/FUTracker.cpp', + 'FCollada/FUtils/FUUniqueStringMap.cpp', + 'FCollada/FUtils/FUUri.cpp', + 'FCollada/FUtils/FUXmlDocument.cpp', + 'FCollada/FUtils/FUXmlParser.cpp', + 'FCollada/FUtils/FUXmlWriter.cpp', + 'FColladaPlugins/FArchiveXML/FArchiveXML.cpp', + 'FColladaPlugins/FArchiveXML/FAXAnimationExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXAnimationImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXCameraExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXCameraImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXColladaParser.cpp', + 'FColladaPlugins/FArchiveXML/FAXColladaWriter.cpp', + 'FColladaPlugins/FArchiveXML/FAXControllerExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXControllerImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXEmitterExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXEmitterImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXEntityExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXEntityImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXForceFieldExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXForceFieldImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXGeometryExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXGeometryImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXImportLinking.cpp', + 'FColladaPlugins/FArchiveXML/FAXInstanceExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXInstanceImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXLightExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXLightImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXMaterialExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXMaterialImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXPhysicsImport.cpp', + 'FColladaPlugins/FArchiveXML/FAXSceneExport.cpp', + 'FColladaPlugins/FArchiveXML/FAXSceneImport.cpp', +] + +fcollada_lib = static_library( + 'FCollada', + sources, + include_directories: 'FCollada', + cpp_args: cpp_args, + dependencies: [dep_dl, dep_libxml2] +) + +dep_fcollada = declare_dependency( + include_directories: ['../include'], + link_with: fcollada_lib, +) Index: libraries/source/nvtt/meson.build =================================================================== --- /dev/null +++ libraries/source/nvtt/meson.build @@ -0,0 +1,68 @@ +#cmake .. -DNVTT_SHARED=1 -DCMAKE_BUILD_TYPE=Release -DBINDIR=bin -DLIBDIR=lib -DGLUT=0 -DGLEW=0 -DCG=0 -DCUDA=0 -DOPENEXR=0 -G "Unix Makefiles" + +sources = [ + 'src/src/nvcore/Debug.cpp', + 'src/src/nvcore/Library.cpp', + 'src/src/nvcore/Memory.cpp', + 'src/src/nvcore/Radix.cpp', + 'src/src/nvcore/StrLib.cpp', + 'src/src/nvcore/TextReader.cpp', + 'src/src/nvcore/TextWriter.cpp', + 'src/src/nvcore/Tokenizer.cpp', + 'src/src/nvimage/BlockDXT.cpp', + 'src/src/nvimage/ColorBlock.cpp', + 'src/src/nvimage/DirectDrawSurface.cpp', + 'src/src/nvimage/Filter.cpp', + 'src/src/nvimage/FloatImage.cpp', + 'src/src/nvimage/HoleFilling.cpp', + 'src/src/nvimage/Image.cpp', + 'src/src/nvimage/ImageIO.cpp', + 'src/src/nvimage/NormalMap.cpp', + 'src/src/nvimage/NormalMipmap.cpp', + 'src/src/nvimage/Quantize.cpp', + 'src/src/nvmath/Basis.cpp', + 'src/src/nvmath/Montecarlo.cpp', + 'src/src/nvmath/Plane.cpp', + 'src/src/nvmath/Random.cpp', + 'src/src/nvmath/SphericalHarmonic.cpp', + 'src/src/nvmath/Triangle.cpp', + 'src/src/nvmath/TriBox.cpp', + 'src/src/nvtt/CompressDXT.cpp', + 'src/src/nvtt/CompressionOptions.cpp', + 'src/src/nvtt/Compressor.cpp', + 'src/src/nvtt/CompressRGB.cpp', + 'src/src/nvtt/cuda/CudaCompressDXT.cpp', + 'src/src/nvtt/cuda/CudaUtils.cpp', + 'src/src/nvtt/InputOptions.cpp', + 'src/src/nvtt/nvtt.cpp', + 'src/src/nvtt/nvtt_wrapper.cpp', + 'src/src/nvtt/OptimalCompressDXT.cpp', + 'src/src/nvtt/OutputOptions.cpp', + 'src/src/nvtt/QuickCompressDXT.cpp', + 'src/src/nvtt/squish/colourblock.cpp', + 'src/src/nvtt/squish/colourfit.cpp', + 'src/src/nvtt/squish/colourset.cpp', + 'src/src/nvtt/squish/maths.cpp', + 'src/src/nvtt/squish/weightedclusterfit.cpp', +] + +config_h = configuration_data() +config_h.set('HAVE_UNISTD_H', 1) +config_h.set('HAVE_STDARG_H', 1) +config_h.set('HAVE_SIGNAL_H', 1) +config_h.set('HAVE_EXECINFO_H', 1) +config_h.set('HAVE_MALLOC_H', 1) +config_h.set('HAVE_PNG', 1) +config_h.set('POSH_USE_LIMITS_H', 1) +configure_file(output: 'nvconfig.h', configuration: config_h) + +nvtt_lib = static_library( + 'nvtt', + sources, + include_directories: ['src/src', 'src/src/nvtt/squish'], +) + +dep_nvtt = declare_dependency( + include_directories: ['include'], + link_with: nvtt_lib, +) Index: meson-build.cmd =================================================================== --- /dev/null +++ meson-build.cmd @@ -0,0 +1,22 @@ +@echo off +REM %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" x86 +RMDIR /S /Q "./build/workspaces/meson/" +RMDIR /S /Q "./build/workspaces/meson-vc2015/" +mkdir "./build/workspaces/meson/" +REM meson --reconfigure --buildtype=release --backend=vs2015 . .\build\workspaces\meson +REM -Db_vscrt=md +meson . "./build/workspaces/meson/" --buildtype=release +COPY "libraries\win32\boost\lib\libboost_system-vc140-mt-1_65_1.lib" "build\workspaces\meson\boost_system-vc140-mt-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_system-vc140-mt-gd-1_65_1.lib" "build\workspaces\meson\boost_system-vc140-mt-gd-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_filesystem-vc140-mt-1_65_1.lib" "build\workspaces\meson\boost_filesystem-vc140-mt-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_filesystem-vc140-mt-gd-1_65_1.lib" "build\workspaces\meson\boost_filesystem-vc140-mt-gd-1_65_1.lib" +meson . "./build/workspaces/meson-vc2015/" --buildtype=release --backend=vs2015 -Db_vscrt=md +COPY "libraries\win32\boost\lib\libboost_system-vc140-mt-1_65_1.lib" "build\workspaces\meson-vc2015\source\boost_system-vc140-mt-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_system-vc140-mt-gd-1_65_1.lib" "build\workspaces\meson-vc2015\source\boost_system-vc140-mt-gd-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_filesystem-vc140-mt-1_65_1.lib" "build\workspaces\meson-vc2015\source\boost_filesystem-vc140-mt-1_65_1.lib" +COPY "libraries\win32\boost\lib\libboost_filesystem-vc140-mt-gd-1_65_1.lib" "build\workspaces\meson-vc2015\source\boost_filesystem-vc140-mt-gd-1_65_1.lib" +CD "build/workspaces/meson" +ninja +REM build\workspaces\meson\0ad.sln +CD ..\..\..\ +REM --cross-file meson-cross-x86-windows.txt Index: meson.build =================================================================== --- /dev/null +++ meson.build @@ -0,0 +1,207 @@ +project('0ad', + 'cpp', + version: 'a23.1', + default_options: [ + 'warning_level=0', + ], + meson_version: '>= 0.52', + license: 'GPL', +) + +if get_option('gles') + dep_gl = dependency('glesv2') +else + dep_gl = dependency('gl') +endif + +dep_tinygettext = declare_dependency( + include_directories: 'source/third_party/tinygettext/include', +) + +dep_valgrind = declare_dependency( + include_directories: 'libraries/source/valgrind/include', +) + +dep_cxxtest = declare_dependency( + include_directories: 'libraries/source/cxxtest-4.4', +) + +cc = meson.get_compiler('cpp') + +if host_machine.system() != 'windows' + dep_dl = cc.find_library('dl', required: false) + dep_boost = cc.find_library('boost_filesystem') + dep_enet = dependency('libenet') + + + if get_option('lobby') + dep_gloox = dependency('gloox') + endif + + dep_iconv = [] + dep_icu = dependency('icu-i18n') + dep_curl = dependency('libcurl') + dep_png = dependency('libpng') + dep_sodium = dependency('libsodium') + dep_libxml2 = dependency('libxml-2.0') + + if get_option('upnp') + dep_miniupnpc = dependency('miniupnpc') + endif + + dep_sdl2 = dependency('SDL2') + + if get_option('audio') + dep_openal = dependency('openal') + dep_vorbis = dependency('vorbisfile') + endif + + dep_zlib = dependency('zlib') + + dep_js = declare_dependency( + include_directories: 'libraries/source/spidermonkey/include-unix-release', + dependencies: cc.find_library('js_static', dirs: meson.current_source_dir() / 'libraries/source/spidermonkey/mozjs-45.0.2/js/src/build-release/js/src'), + ) + spidermonkey_include = 'libraries/source/spidermonkey/include-win32-release' + + subdir('libraries/source/fcollada/src') + + if get_option('nvtt') + subdir('libraries/source/nvtt') + endif +else + + dep_gl = declare_dependency( + include_directories: 'libraries/win32/opengl/include' + ) + + if get_option('buildtype') == 'release' + boost_dependencies = [ + cc.find_library('libboost_filesystem-vc140-mt-1_65_1', + dirs: meson.current_source_dir() / 'libraries/win32/boost/lib/' + ), + cc.find_library('libboost_system-vc140-mt-1_65_1', + dirs: meson.current_source_dir() / 'libraries/win32/boost/lib/' + ), + ] + else + boost_dependencies = [ + cc.find_library('libboost_filesystem-vc140-mt-gd-1_65_1', + dirs: meson.current_source_dir() / 'libraries/win32/boost/lib/' + ), + cc.find_library('libboost_system-vc140-mt-gd-1_65_1', + dirs: meson.current_source_dir() / 'libraries/win32/boost/lib/' + ), + ] + endif + + dep_boost = declare_dependency( + include_directories: 'libraries/win32/boost/include', + dependencies: boost_dependencies + ) + + dep_enet = declare_dependency( + include_directories: 'libraries/win32/enet/include', + dependencies: cc.find_library('enet', dirs: meson.current_source_dir() / 'libraries/win32/enet/lib'), + ) + + if get_option('lobby') + dep_gloox = declare_dependency( + include_directories: 'libraries/win32/gloox/include', + dependencies: cc.find_library('gloox-1.0', dirs: meson.current_source_dir() / 'libraries/win32/gloox/lib'), + ) + endif + + dep_iconv = declare_dependency( + include_directories: 'libraries/win32/iconv/include', + dependencies: cc.find_library('libiconv', dirs: meson.current_source_dir() / 'libraries/win32/iconv/lib'), + ) + + dep_icu = declare_dependency( + include_directories: 'libraries/win32/icu/include', + dependencies: [ + cc.find_library('icudt', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('icuin', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('icuio', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('icule', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('iculx', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('icutu', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + cc.find_library('icuuc', dirs: meson.current_source_dir() / 'libraries/win32/icu/lib'), + ], + ) + + dep_curl = declare_dependency( + include_directories: 'libraries/win32/libcurl/include', + dependencies: cc.find_library('libcurl', dirs: meson.current_source_dir() / 'libraries/win32/libcurl/lib'), + ) + + dep_png = declare_dependency( + include_directories: 'libraries/win32/libpng/include', + dependencies: cc.find_library('libpng16', dirs: meson.current_source_dir() / 'libraries/win32/libpng/lib'), + ) + + dep_sodium = declare_dependency( + include_directories: 'libraries/win32/libsodium/include', + dependencies: cc.find_library('libsodium', dirs: meson.current_source_dir() / 'libraries/win32/libsodium/lib'), + ) + + dep_libxml2 = declare_dependency( + include_directories: 'libraries/win32/libxml2/include', + dependencies: cc.find_library('libxml2', dirs: meson.current_source_dir() / 'libraries/win32/libxml2/lib'), + ) + + if get_option('upnp') + dep_miniupnpc = declare_dependency( + include_directories: 'libraries/win32/miniupnpc/include', + dependencies: cc.find_library('miniupnpc', dirs: meson.current_source_dir() / 'libraries/win32/miniupnpc/lib'), + ) + endif + + dep_sdl2 = declare_dependency( + include_directories: 'libraries/win32/sdl2/include/SDL', + dependencies: [ + cc.find_library('SDL2', dirs: meson.current_source_dir() / 'libraries/win32/sdl2/lib'), + cc.find_library('SDL2main', dirs: meson.current_source_dir() / 'libraries/win32/sdl2/lib'), + ] + ) + + if get_option('audio') + dep_openal = declare_dependency( + include_directories: 'libraries/win32/openal/include', + dependencies: cc.find_library('OpenAL32', dirs: meson.current_source_dir() / 'libraries/win32/openal/lib'), + ) + + dep_vorbis = declare_dependency( + include_directories: 'libraries/win32/vorbis/include', + dependencies: [ + cc.find_library('libogg', dirs: meson.current_source_dir() / 'libraries/win32/vorbis/lib'), + cc.find_library('libvorbis', dirs: meson.current_source_dir() / 'libraries/win32/vorbis/lib'), + cc.find_library('libvorbisfile', dirs: meson.current_source_dir() / 'libraries/win32/vorbis/lib'), + ] + ) + endif + + dep_zlib = declare_dependency( + include_directories: 'libraries/win32/zlib/include', + dependencies: cc.find_library('zlib1', dirs: meson.current_source_dir() / 'libraries/win32/zlib/lib/'), + ) + + dep_fcollada = declare_dependency( + include_directories: 'libraries/source/fcollada/include', + dependencies: cc.find_library('FCollada', dirs: meson.current_source_dir() / 'libraries/source/fcollada/lib'), + ) + + dep_js = declare_dependency( + include_directories: 'libraries/source/spidermonkey/include-win32-release', + dependencies: cc.find_library('mozjs45-ps-release-vc140', dirs: meson.current_source_dir() / 'libraries/source/spidermonkey/lib'), + ) + + if get_option('nvtt') + dep_nvtt = declare_dependency( + include_directories: 'libraries/source/nvtt/include', + dependencies: cc.find_library('nvtt', dirs: meson.current_source_dir() / 'libraries/source/nvtt/lib') + ) + endif + endif + +subdir('source') Index: meson_options.txt =================================================================== --- /dev/null +++ meson_options.txt @@ -0,0 +1,48 @@ +option( + 'gles', + type: 'boolean', + value: false, + description: 'Build with OpenGL ES support instead of OpenGL' +) + +option( + 'audio', + type: 'boolean', + value: true, + description: 'Build with audio support' +) + +option( + 'lobby', + type: 'boolean', + value: true, + description: 'Build with XMPP support' +) + +option( + 'upnp', + type: 'boolean', + value: true, + description: 'Build with UPnP support' +) + +option( + 'nvtt', + type: 'boolean', + value: true, + description: 'Build with NVTT support' +) + +option( + 'atlas', + type: 'boolean', + value: false, + description: 'Build Atlas the map editor' +) + +option( + 'collada', + type: 'boolean', + value: true, + description: 'Build the collada wrapper' +) Index: source/lib/lib_api.h =================================================================== --- source/lib/lib_api.h +++ source/lib/lib_api.h @@ -36,11 +36,6 @@ # define LIB_API __declspec(dllexport) # else # define LIB_API __declspec(dllimport) -# ifdef NDEBUG -# pragma comment(lib, "lowlevel.lib") -# else -# pragma comment(lib, "lowlevel_d.lib") -# endif # endif # elif GCC_VERSION # ifdef LIB_BUILD Index: source/meson.build =================================================================== --- /dev/null +++ source/meson.build @@ -0,0 +1,1053 @@ + +# -------------- ICONV STUFF ---------------------------------------- +# HAVE_ICONV_CONST=1 ICONV_CONST=const needed for +# source/third_party/tinygettext/include/tinygettext/iconv.hpp:37 +# ---------------BOOST STUFF-------------------------------------- +# LIB_STATIC_LINK +# needed for all this stuff https://github.com/0ad/0ad/search?q=LIB_STATIC_LINK&unscoped_q=LIB_STATIC_LINK +# required for the lowlevel library. must be set from all projects that use it, otherwise BOOST assumes it is +# being used as a DLL (which is currently not the case in 0ad) +# ---------------NVTT STUFF-------------------------------------- +# NVTT_SHARED=1' +# libraries/source/nvtt/src/src/nvtt/nvtt.h:30 + +cpp_args = [] +if host_machine.system() == 'linux' + cpp_args += '-DLINUX' +endif + +if host_machine.system() == 'windows' + cpp_args += '-DUSING_PCH=1' +endif + +if get_option('buildtype') == 'release' + cpp_args += '-DNDEBUG' +else + cpp_args += '-D_DEBUG' +endif + +if get_option('gles') + cpp_args += '-DCONFIG2_GLES=1' +else + cpp_args += '-DCONFIG2_GLES=0' +endif + +if get_option('audio') + cpp_args += '-DCONFIG2_AUDIO=1' +else + cpp_args += '-DCONFIG2_AUDIO=0' +endif + +if get_option('lobby') + cpp_args += '-DCONFIG2_LOBBY=1' +else + cpp_args += '-DCONFIG2_LOBBY=0' +endif + +if get_option('upnp') + cpp_args += '-DCONFIG2_MINIUPNPC=1' +else + cpp_args += '-DCONFIG2_MINIUPNPC=0' +endif + +if get_option('nvtt') + cpp_args += '-DCONFIG2_NVTT=1' +else + cpp_args += '-DCONFIG2_NVTT=0' +endif + +collada_args = cpp_args +collada_args += '-DHAVE_ICONV_CONST=1 -DICONV_CONST=const -DLIBICONV_STATIC' +collada_sources = [ + 'collada/precompiled.cpp', + 'collada/CommonConvert.cpp', + 'collada/Decompose.cpp', + 'collada/DLL.cpp', + 'collada/GeomReindex.cpp', + 'collada/Maths.cpp', + 'collada/PMDConvert.cpp', + 'collada/PSAConvert.cpp', + 'collada/StdSkeletons.cpp', + 'collada/XMLFix.cpp', +] +collada_dependencies = [dep_fcollada, dep_libxml2, dep_iconv] +collada = library( + 'Collada', + sources: collada_sources, + cpp_pch: 'collada/precompiled.h', + dependencies: collada_dependencies, + cpp_args: collada_args, +) + +glooxwrapper_cpp_args = cpp_args +glooxwrapper_cpp_args += '-DLIB_STATIC_LINK=1' +glooxwrapper_sources = [ + 'lobby/glooxwrapper/glooxwrapper.cpp', +] +glooxwrapper_dependencies = [dep_gloox, dep_boost] +glooxwrapper = library( + 'glooxwrapper', + glooxwrapper_sources, + include_directories: [ + 'pch/glooxwrapper', + ], + dependencies: glooxwrapper_dependencies, + cpp_args: glooxwrapper_cpp_args, +) + +encryption = static_library( + 'encryption', + ['third_party/encryption/pkcs5_pbkdf2.cpp'], + include_directories: 'lib', + dependencies: [dep_sodium, dep_boost], + cpp_args: cpp_args, +) + +if get_option('lobby') + + lobby_sources = [ + 'pch/lobby/precompiled.cpp', + 'lobby/scripting/GlooxScriptConversions.cpp', + 'lobby/Globals.cpp', + 'lobby/scripting/JSInterface_Lobby.cpp', + 'lobby/StanzaExtensions.cpp', + 'lobby/XmppClient.cpp', + ] + lobby_cpp_args = cpp_args + lobby_cpp_args += '-DLIB_STATIC_LINK=1' + lobby = static_library( + 'lobby', + lobby_sources, + include_directories: 'lib', + dependencies: [dep_boost, dep_js, dep_gloox, dep_tinygettext, dep_sodium, dep_icu, dep_iconv, dep_enet], + cpp_args: lobby_cpp_args, + link_with: [glooxwrapper, encryption], + ) +else + lobby_sources = [ + 'lobby/Globals.cpp', + 'lobby/scripting/JSInterface_Lobby.cpp', + ] + + lobby = static_library( + 'lobby', + lobby_sources, + include_directories: 'lib', + dependencies: [dep_js], + cpp_args: cpp_args, + ) +endif + +network_cpp_args = cpp_args +network_cpp_args += '-DLIB_STATIC_LINK=1' +network_sources = [ + 'network/fsm.cpp', + 'network/NetClient.cpp', + 'network/NetClientTurnManager.cpp', + 'network/NetFileTransfer.cpp', + 'network/NetHost.cpp', + 'network/NetMessage.cpp', + 'network/NetMessageSim.cpp', + 'network/NetServer.cpp', + 'network/NetServerTurnManager.cpp', + 'network/NetSession.cpp', + 'network/NetStats.cpp', + 'network/StunClient.cpp', + 'network/scripting/JSInterface_Network.cpp', +] + +network_dependencies = [dep_boost,dep_enet, dep_js, dep_sdl2] + +if get_option('upnp') + network_dependencies += dep_miniupnpc # Not supported without +endif + +network = static_library( + 'network', + network_sources, + include_directories: 'pch/network/', + dependencies: network_dependencies, + cpp_args: network_cpp_args, +) + +tinygettext_cpp_args = cpp_args +tinygettext_cpp_args += '-DLIB_STATIC_LINK=1' +# TODO: make sure we don’t want to use the normal gettext instead. +tinygettext_sources = [ + 'third_party/tinygettext/src/dictionary.cpp', + 'third_party/tinygettext/src/dictionary_manager.cpp', + 'third_party/tinygettext/src/iconv.cpp', + 'third_party/tinygettext/src/language.cpp', + 'third_party/tinygettext/src/log.cpp', + 'third_party/tinygettext/src/plural_forms.cpp', + 'third_party/tinygettext/src/po_parser.cpp', + 'third_party/tinygettext/src/tinygettext.cpp', + 'third_party/tinygettext/src/unix_file_system.cpp', +] + +tinygettext = static_library( + 'tinygettext', + tinygettext_sources, + include_directories: 'pch/tinygettext/', + dependencies: [dep_tinygettext, dep_boost, dep_iconv], + cpp_args: tinygettext_cpp_args, +) + +lowlevel_sources = [] + +if get_option('audio') + lowlevel_sources += 'lib/snd.cpp' +endif + +lowlevel_sources += [ + 'lib/allocators/arena.cpp', + 'lib/allocators/dynarray.cpp', + 'lib/allocators/freelist.cpp', + 'lib/allocators/headerless.cpp', + 'lib/allocators/page_aligned.cpp', + 'lib/allocators/pool.cpp', + 'lib/allocators/shared_ptr.cpp', + 'lib/allocators/unique_range.cpp', + 'lib/app_hooks.cpp', + 'lib/base32.cpp', + 'lib/bits.cpp', + 'lib/byte_order.cpp', + 'lib/debug.cpp', + 'lib/debug_stl.cpp', + 'lib/external_libraries/dbghelp.cpp', + 'lib/file/archive/archive.cpp', + 'lib/file/archive/archive_zip.cpp', + 'lib/file/archive/codec.cpp', + 'lib/file/archive/codec_zlib.cpp', + 'lib/file/archive/stream.cpp', + 'lib/file/common/file_loader.cpp', + 'lib/file/common/file_stats.cpp', + 'lib/file/common/real_directory.cpp', + 'lib/file/common/trace.cpp', + 'lib/file/file.cpp', + 'lib/file/file_system.cpp', + 'lib/file/io/io.cpp', + 'lib/file/io/write_buffer.cpp', + 'lib/file/vfs/vfs.cpp', + 'lib/file/vfs/vfs_lookup.cpp', + 'lib/file/vfs/vfs_path.cpp', + 'lib/file/vfs/vfs_populate.cpp', + 'lib/file/vfs/vfs_tree.cpp', + 'lib/file/vfs/vfs_util.cpp', + 'lib/fnv_hash.cpp', + 'lib/frequency_filter.cpp', + 'lib/input.cpp', + 'lib/lib.cpp', + 'lib/module_init.cpp', + 'lib/ogl.cpp', + 'lib/path.cpp', + 'lib/posix/posix.cpp', + 'lib/rand.cpp', + 'lib/regex.cpp', + 'lib/res/graphics/cursor.cpp', + 'lib/res/graphics/ogl_tex.cpp', + 'lib/res/h_mgr.cpp', + 'lib/secure_crt.cpp', + 'lib/status.cpp', + 'lib/svn_revision.cpp', + + # TODO: system specific files, to sort. + 'lib/sysdep/cpu.cpp', + 'lib/sysdep/gfx.cpp', + 'lib/sysdep/os_cpu.cpp', + 'lib/sysdep/smbios.cpp', + + 'lib/tex/tex_bmp.cpp', + 'lib/tex/tex_codec.cpp', + 'lib/tex/tex.cpp', + 'lib/tex/tex_dds.cpp', + 'lib/tex/tex_png.cpp', + 'lib/tex/tex_tga.cpp', + 'lib/timer.cpp', + 'lib/utf8.cpp', + 'lib/wsecure_crt.cpp', +] +if host_machine.cpu_family() == 'x86' + lowlevel_sources += [ + 'lib/sysdep/arch/ia32/ia32.cpp', + ] + if host_machine.system() == 'windows' + lowlevel_sources += [ + 'lib/sysdep/arch/amd64/amd64.cpp', + 'lib/sysdep/arch/x86_x64/apic.cpp', + 'lib/sysdep/arch/x86_x64/cache.cpp', + 'lib/sysdep/arch/x86_x64/topology.cpp', + 'lib/sysdep/arch/x86_x64/x86_x64.cpp', + 'lib/sysdep/arch/x86_x64/msr.cpp', + 'lib/external_libraries/libsdl.cpp' + ] + endif + +elif host_machine.cpu_family() == 'x86_64' + lowlevel_sources += [ + 'lib/sysdep/arch/amd64/amd64.cpp', + 'lib/sysdep/arch/x86_x64/apic.cpp', + 'lib/sysdep/arch/x86_x64/cache.cpp', + 'lib/sysdep/arch/x86_x64/topology.cpp', + 'lib/sysdep/arch/x86_x64/x86_x64.cpp', + ] +elif host_machine.cpu_family() == 'arm' + lowlevel_sources += [ + 'lib/sysdep/arch/arm/arm.cpp', + ] +elif host_machine.cpu_family() == 'aarch64' + lowlevel_sources += [ + 'lib/sysdep/arch/aarch64/aarch64.cpp', + ] +endif + +if host_machine.system() == 'windows' + lowlevel_sources += [ + 'lib/sysdep/acpi.cpp', + 'lib/sysdep/os/win/mahaf.cpp', + 'lib/sysdep/os/win/manifest.cpp', + 'lib/sysdep/os/win/wcpu.cpp', + 'lib/sysdep/os/win/wdbg.cpp', + 'lib/sysdep/os/win/wdbg_heap.cpp', + 'lib/sysdep/os/win/wdbg_sym.cpp', + 'lib/sysdep/os/win/wdir_watch.cpp', + 'lib/sysdep/os/win/wdll_delay_load.cpp', + 'lib/sysdep/os/win/wdll_ver.cpp', + 'lib/sysdep/os/win/wfirmware.cpp', + 'lib/sysdep/os/win/wgfx.cpp', + 'lib/sysdep/os/win/whrt/counter.cpp', + 'lib/sysdep/os/win/whrt/hpet.cpp', + 'lib/sysdep/os/win/whrt/pmt.cpp', + 'lib/sysdep/os/win/whrt/qpc.cpp', + 'lib/sysdep/os/win/whrt/tgt.cpp', + 'lib/sysdep/os/win/whrt/tsc.cpp', + 'lib/sysdep/os/win/whrt/whrt.cpp', + 'lib/sysdep/os/win/winit.cpp', + 'lib/sysdep/os/win/wiocp.cpp', + 'lib/sysdep/os/win/wnuma.cpp', + 'lib/sysdep/os/win/wposix/waio.cpp', + 'lib/sysdep/os/win/wposix/wdlfcn.cpp', + 'lib/sysdep/os/win/wposix/wfilesystem.cpp', + 'lib/sysdep/os/win/wposix/wmman.cpp', + 'lib/sysdep/os/win/wposix/wposix.cpp', + 'lib/sysdep/os/win/wposix/wpthread.cpp', + 'lib/sysdep/os/win/wposix/wtime.cpp', + 'lib/sysdep/os/win/wposix/wutsname.cpp', + 'lib/sysdep/os/win/wprofiler.cpp', + 'lib/sysdep/os/win/wseh.cpp', + 'lib/sysdep/os/win/wstartup.cpp', + 'lib/sysdep/os/win/wsysdep.cpp', + 'lib/sysdep/os/win/wutil.cpp', + 'lib/sysdep/os/win/wversion.cpp', + 'lib/sysdep/os/win/wvm.cpp', + 'lib/sysdep/rtl/msc/msc.cpp', + ] +elif host_machine.system() == 'darwin' + lowlevel_sources += [ + 'lib/sysdep/os/osx/dir_watch.cpp', + 'lib/sysdep/os/osx/ocpu.cpp', + 'lib/sysdep/os/osx/odbg.cpp', + 'lib/sysdep/os/osx/osx.cpp', + ] +elif host_machine.system() == 'linux' + lowlevel_sources += [ + 'lib/sysdep/os/linux/dir_watch_inotify.cpp', + 'lib/sysdep/os/linux/lcpu.cpp', + 'lib/sysdep/os/linux/ldbg.cpp', + 'lib/sysdep/os/linux/linux.cpp', + ] +elif host_machine.system() == 'android' + lowlevel_sources += [ + 'lib/sysdep/os/android/android.cpp', + ] +elif ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly'].contains(host_machine.system()) + lowlevel_sources += [ + 'lib/sysdep/os/bsd/bcpu.cpp', + 'lib/sysdep/os/bsd/bdbg.cpp', + 'lib/sysdep/os/bsd/bsd.cpp', + 'lib/sysdep/os/bsd/dir_watch.cpp', + ] +endif + +if host_machine.system() != 'windows' + lowlevel_sources += [ + 'lib/sysdep/os/unix/udbg.cpp', + 'lib/sysdep/os/unix/ufilesystem.cpp', + 'lib/sysdep/os/unix/unix.cpp', + 'lib/sysdep/os/unix/unix_executable_pathname.cpp', + 'lib/sysdep/os/unix/unuma.cpp', + 'lib/sysdep/os/unix/uvm.cpp', + 'lib/sysdep/rtl/gcc/gcc.cpp', + ] +endif + + +lowlevel_cpp_args = cpp_args +lowlevel_cpp_args += '-DLIB_STATIC_LINK=1' +lowlevel = static_library( + 'lowlevel', + lowlevel_sources, + include_directories: ['lib', 'pch/lowlevel/'], + dependencies: [dep_boost, dep_sdl2, dep_gl, dep_openal, dep_zlib, dep_png], + cpp_args: lowlevel_cpp_args, +) + +sound_cpp_args = cpp_args +sound_cpp_args += '-DLIB_STATIC_LINK=1' + +if get_option('audio') + soundmanager_sources = [ + 'soundmanager/data/ogg.cpp', + 'soundmanager/data/OggData.cpp', + 'soundmanager/data/SoundData.cpp', + 'soundmanager/items/CBufferItem.cpp', + 'soundmanager/items/CSoundBase.cpp', + 'soundmanager/items/CSoundItem.cpp', + 'soundmanager/items/CStreamItem.cpp', + 'soundmanager/scripting/JSInterface_Sound.cpp', + 'soundmanager/scripting/SoundGroup.cpp', + 'soundmanager/SoundManager.cpp', + ] + + soundmanager = static_library( + 'soundmanager', + soundmanager_sources, + include_directories: 'lib', + dependencies: [dep_openal, dep_vorbis, dep_boost, dep_sdl2, dep_js], + link_with: [lowlevel], + cpp_args: sound_cpp_args, + ) + +else + soundmanager_sources = [ + 'soundmanager/SoundManager.cpp', + 'soundmanager/scripting/JSInterface_Sound.cpp', + ] + + soundmanager = static_library( + 'soundmanager', + soundmanager_sources, + include_directories: 'lib', + dependencies: [dep_sdl2, dep_js], + link_with: [lowlevel], + cpp_args: sound_cpp_args, + ) + +endif +gui_sources = [ + 'gui/CGUI.cpp', + 'gui/CGUIScrollBarVertical.cpp', + 'gui/CGUISetting.cpp', + 'gui/CGUISprite.cpp', + 'gui/CGUIText.cpp', + 'gui/GUIManager.cpp', + 'gui/GUIMatrix.cpp', + 'gui/GUIRenderer.cpp', + 'gui/GUIStringConversions.cpp', + 'gui/GUITooltip.cpp', + 'gui/IGUIScrollBar.cpp', + 'gui/ObjectBases/IGUIButtonBehavior.cpp', + 'gui/ObjectBases/IGUIObject.cpp', + 'gui/ObjectBases/IGUIScrollBarOwner.cpp', + 'gui/ObjectBases/IGUITextOwner.cpp', + 'gui/ObjectTypes/CButton.cpp', + 'gui/ObjectTypes/CChart.cpp', + 'gui/ObjectTypes/CCheckBox.cpp', + 'gui/ObjectTypes/CDropDown.cpp', + 'gui/ObjectTypes/CImage.cpp', + 'gui/ObjectTypes/CInput.cpp', + 'gui/ObjectTypes/CList.cpp', + 'gui/ObjectTypes/CMiniMap.cpp', + 'gui/ObjectTypes/COList.cpp', + 'gui/ObjectTypes/CProgressBar.cpp', + 'gui/ObjectTypes/CRadioButton.cpp', + 'gui/ObjectTypes/CSlider.cpp', + 'gui/ObjectTypes/CText.cpp', + 'gui/ObjectTypes/CTooltip.cpp', + 'gui/Scripting/GuiScriptConversions.cpp', + 'gui/Scripting/JSInterface_GUIManager.cpp', + 'gui/Scripting/JSInterface_GUISize.cpp', + 'gui/Scripting/JSInterface_IGUIObject.cpp', + 'gui/Scripting/ScriptFunctions.cpp', + 'gui/SettingTypes/CGUIColor.cpp', + 'gui/SettingTypes/CGUISize.cpp', + 'gui/SettingTypes/CGUIString.cpp', + + 'i18n/L10n.cpp', + 'i18n/scripting/JSInterface_L10n.cpp', +] +gui_cpp_args = cpp_args +gui_cpp_args += '-DLIB_STATIC_LINK=1 -DNVTT_SHARED=1' + +gui = static_library( + 'gui', + gui_sources, + include_directories: 'pch/gui/', + dependencies: [dep_boost, dep_icu, dep_tinygettext, dep_iconv, dep_js, dep_gl, dep_sdl2, dep_nvtt], + cpp_args: gui_cpp_args, +) + +simulation_cpp_args = cpp_args +simulation_cpp_args += '-DLIB_STATIC_LINK=1' +simulation_sources = [ + 'simulation2/components/CCmpAIManager.cpp', + 'simulation2/components/CCmpCinemaManager.cpp', + 'simulation2/components/CCmpCommandQueue.cpp', + 'simulation2/components/CCmpDecay.cpp', + 'simulation2/components/CCmpFootprint.cpp', + 'simulation2/components/CCmpMinimap.cpp', + 'simulation2/components/CCmpMotionBall.cpp', + 'simulation2/components/CCmpObstruction.cpp', + 'simulation2/components/CCmpObstructionManager.cpp', + 'simulation2/components/CCmpOverlayRenderer.cpp', + 'simulation2/components/CCmpOwnership.cpp', + 'simulation2/components/CCmpParticleManager.cpp', + 'simulation2/components/CCmpPathfinder.cpp', + 'simulation2/components/CCmpPosition.cpp', + 'simulation2/components/CCmpProjectileManager.cpp', + 'simulation2/components/CCmpRallyPointRenderer.cpp', + 'simulation2/components/CCmpRangeManager.cpp', + 'simulation2/components/CCmpRangeOverlayRenderer.cpp', + 'simulation2/components/CCmpSelectable.cpp', + 'simulation2/components/CCmpSoundManager.cpp', + 'simulation2/components/CCmpTemplateManager.cpp', + 'simulation2/components/CCmpTerrain.cpp', + 'simulation2/components/CCmpTerritoryInfluence.cpp', + 'simulation2/components/CCmpTerritoryManager.cpp', + 'simulation2/components/CCmpTest.cpp', + 'simulation2/components/CCmpUnitMotion.cpp', + 'simulation2/components/CCmpUnitRenderer.cpp', + 'simulation2/components/CCmpVision.cpp', + 'simulation2/components/CCmpVisualActor.cpp', + 'simulation2/components/CCmpWaterManager.cpp', + 'simulation2/components/ICmpAIInterface.cpp', + 'simulation2/components/ICmpAIManager.cpp', + 'simulation2/components/ICmpAttack.cpp', + 'simulation2/components/ICmpGarrisonHolder.cpp', + 'simulation2/components/ICmpCinemaManager.cpp', + 'simulation2/components/ICmpCommandQueue.cpp', + 'simulation2/components/ICmpDecay.cpp', + 'simulation2/components/ICmpFogging.cpp', + 'simulation2/components/ICmpFootprint.cpp', + 'simulation2/components/ICmpGuiInterface.cpp', + 'simulation2/components/ICmpIdentity.cpp', + 'simulation2/components/ICmpMinimap.cpp', + 'simulation2/components/ICmpMirage.cpp', + 'simulation2/components/ICmpMotion.cpp', + 'simulation2/components/ICmpObstruction.cpp', + 'simulation2/components/ICmpObstructionManager.cpp', + 'simulation2/components/ICmpOverlayRenderer.cpp', + 'simulation2/components/ICmpOwnership.cpp', + 'simulation2/components/ICmpParticleManager.cpp', + 'simulation2/components/ICmpPathfinder.cpp', + 'simulation2/components/ICmpPlayer.cpp', + 'simulation2/components/ICmpPlayerManager.cpp', + 'simulation2/components/ICmpPosition.cpp', + 'simulation2/components/ICmpProjectileManager.cpp', + 'simulation2/components/ICmpRallyPoint.cpp', + 'simulation2/components/ICmpRallyPointRenderer.cpp', + 'simulation2/components/ICmpRangeManager.cpp', + 'simulation2/components/ICmpRangeOverlayRenderer.cpp', + 'simulation2/components/ICmpSelectable.cpp', + 'simulation2/components/ICmpSettlement.cpp', + 'simulation2/components/ICmpSound.cpp', + 'simulation2/components/ICmpSoundManager.cpp', + 'simulation2/components/ICmpTemplateManager.cpp', + 'simulation2/components/ICmpTerrain.cpp', + 'simulation2/components/ICmpTerritoryDecayManager.cpp', + 'simulation2/components/ICmpTerritoryInfluence.cpp', + 'simulation2/components/ICmpTerritoryManager.cpp', + 'simulation2/components/ICmpTest.cpp', + 'simulation2/components/ICmpUnitMotion.cpp', + 'simulation2/components/ICmpUnitRenderer.cpp', + 'simulation2/components/ICmpUnknownScript.cpp', + 'simulation2/components/ICmpValueModificationManager.cpp', + 'simulation2/components/ICmpVisibility.cpp', + 'simulation2/components/ICmpVision.cpp', + 'simulation2/components/ICmpVisual.cpp', + 'simulation2/components/ICmpWaterManager.cpp', + 'simulation2/helpers/CinemaPath.cpp', + 'simulation2/helpers/Geometry.cpp', + 'simulation2/helpers/HierarchicalPathfinder.cpp', + 'simulation2/helpers/LongPathfinder.cpp', + 'simulation2/helpers/PathGoal.cpp', + 'simulation2/helpers/Rasterize.cpp', + 'simulation2/helpers/Render.cpp', + 'simulation2/helpers/Selection.cpp', + 'simulation2/helpers/VertexPathfinder.cpp', + 'simulation2/scripting/EngineScriptConversions.cpp', + 'simulation2/scripting/JSInterface_Simulation.cpp', + 'simulation2/scripting/MessageTypeConversions.cpp', + 'simulation2/scripting/ScriptComponent.cpp', + 'simulation2/serialization/BinarySerializer.cpp', + 'simulation2/serialization/DebugSerializer.cpp', + 'simulation2/serialization/HashSerializer.cpp', + 'simulation2/serialization/IDeserializer.cpp', + 'simulation2/serialization/ISerializer.cpp', + 'simulation2/serialization/StdDeserializer.cpp', + 'simulation2/serialization/StdSerializer.cpp', + 'simulation2/Simulation2.cpp', + 'simulation2/system/CmpPtr.cpp', + 'simulation2/system/ComponentManager.cpp', + 'simulation2/system/ComponentManagerSerialization.cpp', + 'simulation2/system/DynamicSubscription.cpp', + 'simulation2/system/IComponent.cpp', + 'simulation2/system/LocalTurnManager.cpp', + 'simulation2/system/ParamNode.cpp', + 'simulation2/system/ReplayTurnManager.cpp', + 'simulation2/system/SimContext.cpp', + 'simulation2/system/TurnManager.cpp', +] + +simulation = static_library( + 'simulation', + simulation_sources, + include_directories: 'pch/simulation2/', + dependencies: [dep_boost, dep_js, dep_gl], + cpp_args: simulation_cpp_args, + link_with: [lowlevel] +) + +engine_cpp_args = cpp_args +engine_cpp_args += '-DLIB_STATIC_LINK=1' +engine_sources = [ + 'third_party/fmt/format.cpp', + + 'i18n/L10n.cpp', + 'i18n/scripting/JSInterface_L10n.cpp', + 'maths/BoundingBoxAligned.cpp', + 'maths/BoundingBoxOriented.cpp', + 'maths/BoundingSphere.cpp', + 'maths/Brush.cpp', + 'maths/Fixed.cpp', + 'maths/Matrix3D.cpp', + 'maths/MD5.cpp', + 'maths/Noise.cpp', + 'maths/NUSpline.cpp', + 'maths/Plane.cpp', + 'maths/Quaternion.cpp', + 'maths/Sqrt.cpp', + 'maths/Vector3D.cpp', + 'ps/ArchiveBuilder.cpp', + 'ps/CacheLoader.cpp', + 'ps/CConsole.cpp', + 'ps/CLogger.cpp', + 'ps/Compress.cpp', + 'ps/ConfigDB.cpp', + 'ps/CStr.cpp', + 'ps/CStrIntern.cpp', + 'ps/DllLoader.cpp', + 'ps/Errors.cpp', + 'ps/FileIo.cpp', + 'ps/Filesystem.cpp', + 'ps/Game.cpp', + 'ps/GameSetup/Atlas.cpp', + 'ps/GameSetup/CmdLineArgs.cpp', + 'ps/GameSetup/Config.cpp', + 'ps/GameSetup/GameSetup.cpp', + 'ps/GameSetup/HWDetect.cpp', + 'ps/GameSetup/Paths.cpp', + 'ps/Globals.cpp', + 'ps/GUID.cpp', + 'ps/Hotkey.cpp', + 'ps/Joystick.cpp', + 'ps/KeyName.cpp', + 'ps/Loader.cpp', + 'ps/Mod.cpp', + 'ps/ModInstaller.cpp', + 'ps/ModIo.cpp', + 'ps/Profile.cpp', + 'ps/Profiler2.cpp', + 'ps/Profiler2GPU.cpp', + 'ps/ProfileViewer.cpp', + 'ps/Pyrogenesis.cpp', + 'ps/Replay.cpp', + 'ps/SavedGame.cpp', + 'ps/scripting/JSInterface_ConfigDB.cpp', + 'ps/scripting/JSInterface_Console.cpp', + 'ps/scripting/JSInterface_Debug.cpp', + 'ps/scripting/JSInterface_Game.cpp', + 'ps/scripting/JSInterface_Main.cpp', + 'ps/scripting/JSInterface_Mod.cpp', + 'ps/scripting/JSInterface_ModIo.cpp', + 'ps/scripting/JSInterface_SavedGame.cpp', + 'ps/scripting/JSInterface_UserReport.cpp', + 'ps/scripting/JSInterface_VFS.cpp', + 'ps/scripting/JSInterface_VisualReplay.cpp', + 'ps/Shapes.cpp', + 'ps/TemplateLoader.cpp', + 'ps/ThreadUtil.cpp', + 'ps/TouchInput.cpp', + 'ps/UserReport.cpp', + 'ps/Util.cpp', + 'ps/VideoMode.cpp', + 'ps/VisualReplay.cpp', + 'ps/World.cpp', + 'ps/XML/RelaxNG.cpp', + 'ps/XML/Xeromyces.cpp', + 'ps/XML/XeroXMB.cpp', + 'ps/XML/XMLWriter.cpp', +] + +engine = static_library( + 'engine', + engine_sources, + include_directories: ['lib','pch/engine/'], + dependencies: [dep_boost, dep_js, dep_gl, dep_sdl2, dep_icu, dep_tinygettext, dep_iconv, dep_zlib, dep_curl, dep_sodium, dep_openal, dep_libxml2], + link_with: [gui, lowlevel, soundmanager], + cpp_args: engine_cpp_args, +) + + +graphics_sources = [ + 'graphics/ICameraController.cpp', + 'graphics/CameraController.cpp', + 'graphics/Camera.cpp', + 'graphics/CinemaManager.cpp', + 'graphics/ColladaManager.cpp', + 'graphics/Color.cpp', + 'graphics/Decal.cpp', + 'graphics/Font.cpp', + 'graphics/FontManager.cpp', + 'graphics/FontMetrics.cpp', + 'graphics/Frustum.cpp', + 'graphics/GameView.cpp', + 'graphics/HeightMipmap.cpp', + 'graphics/HFTracer.cpp', + 'graphics/LightEnv.cpp', + 'graphics/LOSTexture.cpp', + 'graphics/MapGenerator.cpp', + 'graphics/MapIO.cpp', + 'graphics/MapReader.cpp', + 'graphics/MapWriter.cpp', + 'graphics/Material.cpp', + 'graphics/MaterialManager.cpp', + 'graphics/MeshManager.cpp', + 'graphics/MiniPatch.cpp', + 'graphics/ModelAbstract.cpp', + 'graphics/Model.cpp', + 'graphics/ModelDef.cpp', + 'graphics/ObjectBase.cpp', + 'graphics/ObjectEntry.cpp', + 'graphics/ObjectManager.cpp', + 'graphics/Overlay.cpp', + 'graphics/ParticleEmitter.cpp', + 'graphics/ParticleEmitterType.cpp', + 'graphics/ParticleManager.cpp', + 'graphics/Patch.cpp', + 'graphics/PreprocessorWrapper.cpp', + 'graphics/scripting/JSInterface_GameView.cpp', + 'graphics/ShaderDefines.cpp', + 'graphics/ShaderManager.cpp', + 'graphics/ShaderProgram.cpp', + 'graphics/ShaderProgramFFP.cpp', + 'graphics/ShaderTechnique.cpp', + 'graphics/SkeletonAnimDef.cpp', + 'graphics/SkeletonAnimManager.cpp', + 'graphics/SmoothedValue.cpp', + 'graphics/Terrain.cpp', + 'graphics/TerrainProperties.cpp', + 'graphics/TerrainTextureEntry.cpp', + 'graphics/TerrainTextureManager.cpp', + 'graphics/TerritoryBoundary.cpp', + 'graphics/TerritoryTexture.cpp', + 'graphics/TextRenderer.cpp', + 'graphics/TextureConverter.cpp', + 'graphics/TextureManager.cpp', + 'graphics/UnitAnimation.cpp', + 'graphics/Unit.cpp', + 'graphics/UnitManager.cpp', + + 'renderer/AlphaMapCalculator.cpp', + 'renderer/DecalRData.cpp', + 'renderer/HWLightingModelRenderer.cpp', + 'renderer/InstancingModelRenderer.cpp', + 'renderer/MikktspaceWrap.cpp', + 'renderer/ModelRenderer.cpp', + 'renderer/OverlayRenderer.cpp', + 'renderer/ParticleRenderer.cpp', + 'renderer/PatchRData.cpp', + 'renderer/PostprocManager.cpp', + 'renderer/Renderer.cpp', + 'renderer/RenderingOptions.cpp', + 'renderer/RenderModifiers.cpp', + 'renderer/Scene.cpp', + 'renderer/scripting/JSInterface_Renderer.cpp', + 'renderer/ShadowMap.cpp', + 'renderer/SilhouetteRenderer.cpp', + 'renderer/SkyManager.cpp', + 'renderer/TerrainOverlay.cpp', + 'renderer/TerrainRenderer.cpp', + 'renderer/TexturedLineRData.cpp', + 'renderer/TimeManager.cpp', + 'renderer/VertexArray.cpp', + 'renderer/VertexBuffer.cpp', + 'renderer/VertexBufferManager.cpp', + 'renderer/WaterManager.cpp', + + 'third_party/mikktspace/mikktspace.cpp', + 'third_party/mikktspace/weldmesh.cpp', + 'third_party/ogre3d_preprocessor/OgreGLSLPreprocessor.cpp', +] +graphics_cpp_args = cpp_args +graphics_cpp_args += '-DLIB_STATIC_LINK=1 -DNVTT_SHARED=1' +graphics = static_library( + 'graphics', + graphics_sources, + include_directories: 'pch/graphics/', + dependencies: [dep_boost, dep_gl, dep_js, dep_sdl2, dep_nvtt], + cpp_args: graphics_cpp_args, + link_with: [engine] +) + +mongoose = static_library( + 'mongoose', + ['third_party/mongoose/mongoose.cpp'], + cpp_args: cpp_args, +) + +scriptinterface_cpp_args = cpp_args +scriptinterface_cpp_args += '-DLIB_STATIC_LINK=1' +scriptinterface_sources = [ + 'scriptinterface/ScriptConversions.cpp', + 'scriptinterface/ScriptInterface.cpp', + 'scriptinterface/ScriptRuntime.cpp', + 'scriptinterface/ScriptStats.cpp', +] +scriptinterface = static_library( + 'scriptinterface', + scriptinterface_sources, + include_directories: [ + 'lib', + 'pch/scriptinterface/', + 'third_party/', + ], + dependencies: [dep_boost, dep_js,dep_valgrind], + cpp_args: scriptinterface_cpp_args, + link_with: [lowlevel] +) + +mocks_real_cpp_args = cpp_args +mocks_real_cpp_args += '-DLIB_STATIC_LINK=1' +mocks_real = static_library( + 'mocks_real', + ['mocks/mocks_real.cpp'], + dependencies: [dep_boost], + cpp_args: mocks_real_cpp_args, +) + +mocks_test = static_library( + 'mocks_test', + ['mocks/mocks_test.cpp'], + dependencies: [dep_boost], + cpp_args: cpp_args, +) + +if get_option('atlas') + atlasobject_cpp_args = cpp_args + atlasobject_sources = [ + 'tools/atlas/AtlasObject/AtlasObjectImpl.cpp', + 'tools/atlas/AtlasObject/AtlasObjectJS.cpp', + 'tools/atlas/AtlasObject/AtlasObjectText.cpp', + 'tools/atlas/AtlasObject/AtlasObjectXML.cpp', + ] + atlasobject = static_library( + 'AtlasObject', + atlasobject_sources, + include_directories: ['third_party/jsonspirit/', 'pch/atlas/'], + dependencies: [dep_boost], + link_with: [lowlevel], + cpp_args: simulation_cpp_args, + ) + atlasui_cpp_args = cpp_args + atlasui_sources = [ + 'tools/atlas/AtlasUI/ActorEditor/ActorEditor.cpp', + 'tools/atlas/AtlasUI/ActorEditor/ActorEditorListCtrl.cpp', + 'tools/atlas/AtlasUI/ActorEditor/AnimListEditor.cpp', + 'tools/atlas/AtlasUI/ActorEditor/PropListEditor.cpp', + 'tools/atlas/AtlasUI/ActorEditor/TexListEditor.cpp', + 'tools/atlas/AtlasUI/CustomControls/Buttons/ActionButton.cpp', + 'tools/atlas/AtlasUI/CustomControls/Buttons/ToolButton.cpp', + 'tools/atlas/AtlasUI/CustomControls/Canvas/Canvas.cpp', + 'tools/atlas/AtlasUI/CustomControls/ColorDialog/ColorDialog.cpp', + 'tools/atlas/AtlasUI/CustomControls/DraggableListCtrl/DraggableListCtrlCommands.cpp', + 'tools/atlas/AtlasUI/CustomControls/DraggableListCtrl/DraggableListCtrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/EditableListCtrlCommands.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/EditableListCtrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/FieldEditCtrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/ListCtrlValidator.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/QuickComboBox.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/QuickFileCtrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/EditableListCtrl/QuickTextCtrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/FileHistory/FileHistory.cpp', + 'tools/atlas/AtlasUI/CustomControls/HighResTimer/HighResTimer.cpp', + 'tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp', + 'tools/atlas/AtlasUI/CustomControls/SnapSplitterWindow/SnapSplitterWindow.cpp', + 'tools/atlas/AtlasUI/CustomControls/VirtualDirTreeCtrl/virtualdirtreectrl.cpp', + 'tools/atlas/AtlasUI/CustomControls/Windows/AtlasDialog.cpp', + 'tools/atlas/AtlasUI/CustomControls/Windows/AtlasWindow.cpp', + 'tools/atlas/AtlasUI/General/AtlasClipboard.cpp', + 'tools/atlas/AtlasUI/General/AtlasEventLoop.cpp', + 'tools/atlas/AtlasUI/General/AtlasWindowCommand.cpp', + 'tools/atlas/AtlasUI/General/AtlasWindowCommandProc.cpp', + 'tools/atlas/AtlasUI/General/Datafile.cpp', + 'tools/atlas/AtlasUI/General/Observable.cpp', + 'tools/atlas/AtlasUI/Misc/DLLInterface.cpp', + 'tools/atlas/AtlasUI/Misc/KeyMap.cpp', + 'tools/atlas/AtlasUI/Misc/precompiled.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/SectionLayout.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Cinema/Cinema.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Common/Sidebar.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/Environment.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/LightControl.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Object/Object.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Object/VariationControl.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Player/Player.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Sections/Terrain/Terrain.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/ActorViewerTool.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/AlterElevation.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/Common/Brushes.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/Common/MiscState.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/Common/ObjectSettings.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/Common/Tools.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/FillTerrain.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/FlattenElevation.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/PaintTerrain.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/PickWaterHeight.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/PikeElevation.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/PlaceObject.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/ReplaceTerrain.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/SmoothElevation.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/TransformObject.cpp', + 'tools/atlas/AtlasUI/ScenarioEditor/Tools/TransformPath.cpp', + ] + + atlasui = library( + 'AtlasUI', # Called in Atlas.cpp + atlasui_sources, + include_directories: [ + 'pch/atlas/', + 'tools/atlas/AtlasUI/CustomControls/', + ], + dependencies: [dep_iconv, dep_libxml2, dep_boost, dep_js], + link_with: [atlasobject], + cpp_args: atlasui_cpp_args, + ) + + actoreditor_sources = [ + 'tools/atlas/AtlasFrontends/ActorEditor.cpp', + ] + executable( + 'actoreditor', + actoreditor_sources, + dependencies: dependencies, + link_with: [atlasobject, atlasui], + cpp_args: cpp_args, + install: true + ) +endif + + + +atlas_sources = [ + +# 'tools/atlas/AtlasFrontends/_template.cpp', + 'tools/atlas/GameInterface/ActorViewer.cpp', + 'tools/atlas/GameInterface/Brushes.cpp', + 'tools/atlas/GameInterface/CommandProc.cpp', + 'tools/atlas/GameInterface/GameLoop.cpp', + 'tools/atlas/GameInterface/InputProcessor.cpp', + 'tools/atlas/GameInterface/MessagePasserImpl.cpp', + 'tools/atlas/GameInterface/Misc.cpp', + 'tools/atlas/GameInterface/Register.cpp', + 'tools/atlas/GameInterface/SimState.cpp', + 'tools/atlas/GameInterface/View.cpp', + 'tools/atlas/GameInterface/Handlers/BrushHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/CameraCtrlHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/CinemaHandler.cpp', + 'tools/atlas/GameInterface/Handlers/CommandHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/ElevationHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/EnvironmentHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/GraphicsSetupHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/MapHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/MessageHandler.cpp', + 'tools/atlas/GameInterface/Handlers/MiscHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/PlayerHandlers.cpp', + 'tools/atlas/GameInterface/Handlers/TerrainHandlers.cpp', +] +atlas_cpp_args = cpp_args +atlas_cpp_args += '-DLIB_STATIC_LINK=1' +atlas = static_library( + 'atlas', + atlas_sources, + include_directories: [ + 'pch/atlas/', + ], + dependencies: [dep_boost, dep_js, dep_gl, dep_sdl2], + cpp_args: atlas_cpp_args, +) + + +pyrogenesis_cpp_args = cpp_args +sources = [ + 'main.cpp', + +] + + + +if host_machine.system() == 'windows' +windows = import('windows') + pyrogenesis_cpp_args += '-DLIB_STATIC_LINK=1 -DHAVE_ICONV_CONST=1 -DICONV_CONST=const -DNVTT_SHARED=1' + sources += [ + windows.compile_resources('lib/sysdep/os/win/error_dialog.rc'), + windows.compile_resources('lib/sysdep/os/win/icon.rc'), + ] +endif + +executable( + 'pyrogenesis', + sources, + include_directories: 'lib', + link_with: [atlas, engine, glooxwrapper, graphics, gui, lobby, lowlevel, mocks_real, mongoose, network, scriptinterface, simulation, tinygettext], + dependencies: [dep_boost, dep_gl, dep_sdl2, dep_js], + cpp_args: pyrogenesis_cpp_args, + install: true +) + + +# pyrogenesis_test_sources = [ +# 'graphics/tests/test_Camera.cpp', +# # 'gui/tests/test_*', +# # 'lib/tests/test_*', +# # 'maths/tests/test_*', +# # 'network/tests/test_*', +# # 'ps/tests/test_*', +# # 'scriptinterface/tests/test_*', +# # 'simulation2/tests/test_*', +# # 'simulation2/components/tests/test_*', +# # 'third_party/encryption/tests/test_*', +# # 'third_party/ogre3d_preprocessor/tests/test_*', +# # 'tools/atlas/tests/test_*', +# # 'ps/GameSetup/tests/test_*', +# # 'ps/XML/tests/test_*', +# # 'test_setup.cpp', + +# ] + + +# executable( +# 'pyrogenesis-test', +# pyrogenesis_test_sources, +# include_directories: [ +# 'lib', +# 'pch/test/', +# ], +# dependencies: dependencies, +# link_with: [atlas, engine, glooxwrapper, graphics, gui, lobby, lowlevel, mocks_test, mongoose, network, scriptinterface, simulation, tinygettext], +# cpp_args: pyrogenesis_cpp_args, +# install: true +# ) Index: source/ps/Util.cpp =================================================================== --- source/ps/Util.cpp +++ source/ps/Util.cpp @@ -81,8 +81,10 @@ { TIMER(L"write_sys_info"); +#if CONFIG2_AUDIO // get_cpu_info and gfx_detect already called during init - see call site snd_detect(); +#endif struct utsname un; uname(&un); @@ -138,8 +140,12 @@ fprintf(f, "Video Mode : %dx%d:%d\n", g_VideoMode.GetXRes(), g_VideoMode.GetYRes(), g_VideoMode.GetBPP()); // sound +#if CONFIG2_AUDIO fprintf(f, "Sound Card : %s\n", snd_card.c_str()); fprintf(f, "Sound Drivers : %s\n", snd_drv_ver.c_str()); +#else + fprintf(f, "Sound : disabled\n"); +#endif // OpenGL extensions (write them last, since it's a lot of text) const char* exts = ogl_ExtensionString(); Index: source/soundmanager/scripting/JSInterface_Sound.cpp =================================================================== --- source/soundmanager/scripting/JSInterface_Sound.cpp +++ source/soundmanager/scripting/JSInterface_Sound.cpp @@ -125,11 +125,11 @@ void ClearPlaylist(ScriptInterface::CxPrivate* UNUSED(pCxPrivate) ){} void StopMusic(ScriptInterface::CxPrivate* UNUSED(pCxPrivate) ){} void StartMusic(ScriptInterface::CxPrivate* UNUSED(pCxPrivate) ){} - void SetMasterGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float gain){} - void SetMusicGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float gain){} - void SetAmbientGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float gain){} - void SetActionGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float gain){} - void SetUIGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float gain){} + void SetMasterGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float UNUSED(gain)){} + void SetMusicGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float UNUSED(gain)){} + void SetAmbientGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float UNUSED(gain)){} + void SetActionGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float UNUSED(gain)){} + void SetUIGain(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), float UNUSED(gain)){} #endif Index: source/third_party/tinygettext/src/iconv.cpp =================================================================== --- source/third_party/tinygettext/src/iconv.cpp +++ source/third_party/tinygettext/src/iconv.cpp @@ -112,7 +112,7 @@ // We try to avoid to much copying around, so we write directly into // a std::string - tinygettext_ICONV_CONST char* inbuf = const_cast(&text[0]); + const char* inbuf = const_cast(&text[0]); std::string result(outbytesleft, 'X'); char* outbuf = &result[0];