Commit Graph

542 Commits (61962fe70abd22a665446cc09fcef163bf0e3862)

Author SHA1 Message Date
Lukas Werling 1147d1a154 Fix openclonk-server build
SDL usage is masked with HAVE_SDL checks so it should work without SDL,
but SDL has to be linked when it's available.
2016-02-21 18:26:43 +01:00
Sven Eberhardt a4d28c383b Qt Editor: Implement object list view 2016-02-18 00:11:35 -05:00
Sven Eberhardt 2af22ee824 New editor (Qt-based)
Work in progress. So far only for Windows.
2016-02-15 08:38:06 -05:00
Günther Brammer 544c1cbb4b CMake: Remove unused HAVE_X11_KEYSYM_H 2016-02-13 22:36:41 +01:00
Nicolas Hake acafce33b0 CMake: Use target_compile_definitions instead of setting the property 2016-02-13 21:56:34 +01:00
Lukas Werling bd3f020068 Replace Joystick controls with SDL GameController 2016-02-13 21:03:19 +01:00
Nicolas Hake 3fb3f45a35 MSVC: Disable non-conforming conversion from string literal to char*
C++11 forbids conforming compilers from performing the deprecated
conversion from a string literal to non-const char* or wchar_t*. Most
compilers however still do it by default because not doing it breaks
lots of legacy code. We don't have any of this legacy code anymore, so
we can disable the conversion.
2016-02-08 17:36:50 +01:00
Günther Brammer 4b4b8781a0 Make GTK+ and SDL2 work together
If the gamepad code initialized the SDL video subsystem, GTK+ crashed in
libX11. Or something along those lines.

Making the optional subsystems using SDL for gamepads and audio use
SDL_InitSubSystem and only the SDL Application port do the full SDL_Init
is the proper way to do things in any case.
2016-02-06 21:12:56 +01:00
Günther Brammer 934b519bb4 Update the SDL port to SDL2
SDL2 is a much closer match to the other platform code, and
allows the creation of OpenGL 3 core contexts, which is
now required.
2016-02-06 16:48:21 +01:00
Günther Brammer 70d25b0b91 gtk: Fold contents of C4AppGTKImpl.h into C4AppGTK.cpp
C4WindowGTK.cpp no longer needs anything from it.
2016-02-03 03:17:16 +01:00
Günther Brammer 2fe0beebdb Move contents of src/gamescript into other directories
C4Effect will get moved into the ScriptEngine, and just three source files
is a bit too little for one directory.
2016-02-02 02:57:46 +01:00
Günther Brammer 8425169dd6 Rename C4Script.h to C4GameScript.h 2016-01-24 12:27:23 +01:00
Günther Brammer 4c01592196 Move C4AulScriptFunc into its own source file 2016-01-24 12:27:23 +01:00
Günther Brammer e790d2c327 Remove duplicated stubs for the scriptengine from mape 2016-01-24 02:09:14 +01:00
Günther Brammer 78e3457ff7 MSVC: Remove support and workarounds for versions older than 2015
We require that version for its C++14 support anyway.
2016-01-23 23:10:02 +01:00
Günther Brammer 93f12150c4 CMake: Remove obsolete USE_X11 option and add USE_WIN32_WINDOWS
USE_WIN32_WINDOWS was previously defined in PlatformAbstraction.h. Move it
to CMakeLists.txt and config.h like its peers. Replace USE_X11 with USE_GTK
or GDK_WINDOWING_X11 as appropriate.
2016-01-23 20:36:34 +01:00
Günther Brammer 11bbeb2a5b Rename WITH_DEVELOPER_MODE to USE_GTK
This mirrors USE_WIN32_WINDOWS, USE_SDL_MAINLOOP and USE_COCOA.
2016-01-23 20:36:33 +01:00
Nicolas Hake 8136edb45a Pull tests into main CMake project 2016-01-23 13:49:05 +01:00
Nicolas Hake 8579c0d522 MSVC: Sort individual projects into folders 2016-01-23 13:49:04 +01:00
Nicolas Hake c2dbd319bb VS 2015: Enable Edit-and-Continue for 64 bit builds
Visual Studio 2015 supports Edit-and-Continue for 64 bit builds, so we
can enable it.
2016-01-21 23:18:10 +01:00
Günther Brammer aa2e660094 Merge branch 'cmake' 2016-01-18 01:12:59 +01:00
Günther Brammer debc559bc7 CMake: Fix building mape on systems with more than one GTK+ CPP flag 2016-01-18 01:12:41 +01:00
Günther Brammer e4b96c49d4 CMake: Remove unmaintained list of dependency packages 2016-01-17 23:34:29 +01:00
Günther Brammer bc3754b871 Merge branch 'editor' 2016-01-16 16:00:57 +01:00
Günther Brammer 30c579b846 CMake: Link to freetype even if it is not in the default directory 2016-01-11 11:10:53 +01:00
Günther Brammer 0f94dd2249 Remove obsolete IFT icons
This probably breaks the macosx editor even more.
2016-01-11 01:52:50 +01:00
Günther Brammer 39c2a0e18c gtk: Use glib-compile-resources instead of gdk-pixbuf-csource
Yet another deprecated feature replacement. At least this one makes our
code more concise.
2016-01-11 01:52:49 +01:00
Martin Plicht 1a3b47dcbb CMakeLists.txt: Stop setting CMAKE_XCODE_ATTRIBUTE_GCC_PREFIX_HEADER in case of Xcode 2016-01-10 18:01:29 +01:00
Günther Brammer 7b7f6023b8 CMake: Bump minimum version requirement to the version in Debian stable 2015-12-29 18:35:55 +01:00
Günther Brammer 7400c7e20e CMake: Remove -std=gnu++0x-removal code 2015-12-29 18:35:55 +01:00
Nicolas Hake c0befc6ba0 Remove C4RTF
The only use of C4RTF in its final moments was parsing out plain text
from RTF files anyway, so why even go to all the trouble instead of just
storing plain text in the beginning?
2015-12-29 17:51:43 +01:00
Günther Brammer 77a71c39d3 Require some C++14 support (make_unique, index_sequence) 2015-12-29 15:47:55 +01:00
Günther Brammer b8953d8a09 CMake: Simplify precompiled header support for MSVC
Instead of conditionally adding src/C4Include.cpp, simply add it always. It
doesn't do anything with other compilers, but the tiny speedup from not
compiling it isn't worth the additional complexity.
2015-12-29 15:47:55 +01:00
Günther Brammer 16ef28e05f Drop unused C4VERSIONBUILDNAME and C4ENGINEINFO
This was used to name snapshot releases of the Network2 branch, and has
seen almost no use since.

C4ENGINEINFO(LONG) was a duplicate of C4ENGINENAME and C4ENGINECAPTION.
2015-12-29 15:47:55 +01:00
Nicolas Hake 0ef4e71363 MSVC 2015: Add natvis file to solution
This employs a rather ugly hack to make CMake do what we want. CMake
doesn't allow us to add items directly to the solution (as opposed to
one of the projects inside it), and thus requires us to abuse its lack
of parameter validation to manually add the file.
2015-12-29 13:58:15 +01:00
Günther Brammer 475ec23ef5 OS X: Use the same compiler flags code as the other stuff
Also remove redundant and inconsistent setting of the
XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS property, and a dead variable.
2015-12-29 01:48:41 +01:00
Günther Brammer 78f806f03c CMake: Fix check for getopt.h 2015-12-29 01:48:41 +01:00
Günther Brammer 4f64d13fc0 CMake: Remove broken addition of GLEW_DEFINITIONS to openclonk
This only didn't break earlier because this code was located before
find_package(GLEW). The add_definitions(${GLEW_DEFINITIONS}) call that
actually adds the macro is a bit broad, but the macro doesn't harm the
targets that do not use GLEW.
2015-12-29 01:48:41 +01:00
Nicolas Hake 6051c3e171 OS X: Stop overriding C++ version 2015-12-28 21:45:22 +01:00
Günther Brammer 3d00540311 CMake: Check that getopt.h works without additional libraries
Since there's already a getopt library in thirdparty/, there's no need to
guess about ways to make it work with a system header without support in
the C library itself.
2015-12-28 20:12:35 +01:00
Günther Brammer bb5f4c9440 Switch gcc to C++14, if supported
Keep the check for C++0x/C++11 for now. Remove that flag instead of not
adding it, because it most likely still is in the CMAKE_CXX_FLAGS, which
are cached.
2015-12-28 18:50:32 +01:00
Günther Brammer f07038d3ac CMake: Move Mac OS bundle contents near the generated header commands
Both contain resources for the editor GUI, so they fit together.
2015-12-28 18:50:31 +01:00
Günther Brammer 715cdd009f CMake: Move the headers and libraries checks before source lists
This way, the source lists are nearer to the executable definitions, which
also contain source lists.
2015-12-28 18:50:31 +01:00
Günther Brammer 9c241f507e CMake: Move commands to generate headers from bitmaps into a section 2015-12-28 18:50:31 +01:00
Günther Brammer c3f67cae5a CMake: Arrange the CMakeLists.txt a bit more clearly 2015-12-28 18:50:29 +01:00
Günther Brammer 4b672c3518 CMake: Move vasprintf check to the other compiler checks 2015-12-28 18:48:46 +01:00
Günther Brammer 1ae9343c46 CMake: Silence warnings from GTK+ header files 2015-12-28 18:48:46 +01:00
Günther Brammer 5271b038db CMake: Remove remnants of USE_CONSOLE option
It wasn't set anymore, except as a C++ macro, so checking it doesn't do
anything.
2015-12-28 18:48:46 +01:00
Günther Brammer 30e0cdb418 CMake: Re-enable readline support for openclonk-server 2015-12-28 18:48:45 +01:00
Nicolas Hake d737dc1b05 Remove C4Video, StdVideo
Video recording and playback only worked on Windows, and recording only
handled video, not game audio. As such, it was of fairly limited use,
and there's lots of software available these days that handle both.
2015-12-28 11:43:41 +01:00
Armin Burgmeier d7a5ac373d Fix the console build on Mac
cmake still does not create a nice bundle for it, but at least
the build does not fail anymore.
2015-12-23 16:31:19 -08:00
Günther Brammer 576f461ea5 CMake: Set compiler flags before checking compiler features
Moving the flags from CMAKE_CXX_FLAGS to OC_CXX_FLAGS, adding flags and
removing duplicates keeps CMAKS_CXX_FLAGS from growing. Unfortunately,
-std=gnu++0x needs to be in CMAKE_CXX_FLAGS before compiler features get
tested, but CMAKE_CXX_FLAGS is filled from OC_CXX_FLAGS further down.

Fortunately, all tests for compiler flags are quite simple, so they can be
done at the beginning, and the feature tests after that. Reorder the code
accordingly.
2015-12-22 18:07:38 +01:00
Günther Brammer 29f37eb821 CMake: Remove duplicate compiler flags properly
In order to be able to remove duplicates from the list, each flags needs to
be a separate list item. Otherwise, the flags from the previous run in
CMAKE_CXX_FLAGS, which are now separate list items due to
separate_arguments(), will not be recognized as duplicates of the freshly
added flags. Fortunately, in the next round the two sets of flags in
CMAKE_CXX_FLAGS will be reduced to one set, so there were never more than
two copies of the warning flags.
2015-12-22 18:07:38 +01:00
Nicolas Hake da51a2d8af CMake: Have headless build as a project instead of a separate config
Hardly anyone ever tests the headless build, because it requires you to
run CMake a second time with -DUSE_CONSOLE=On. So now it's an included
project which you'll get whether you want it or not.

I'm well aware that this could be solved more nicely, and that we could
be splitting unchanged files out into a separate support library, but
that's left for a later date.
2015-12-16 00:50:09 +01:00
Nicolas Hake 72002cc366 Kill netpuncher
Another piece of code that hasn't been tested in ages, gone. The default
puncher address was still pointing to clonk.de, which I'm very certain
isn't providing UDP hole punching services anymore.

Instead of a bespoke hole punching implementation we should use a STUN
lib.
2015-12-13 16:11:08 +01:00
Nicolas Hake ff57c03295 CMake: Move pthread, rt deps to libmisc
libmisc is the support library that references thread code and timing.
So the dependencies on pthread and rt should be attached to libmisc
instead of every single binary.
2015-12-13 14:34:02 +01:00
Nicolas Hake b6327fdf93 CMake: make explicit that libc4script depends on libmisc
libc4script uses C4Group, so it has a dependency on libmisc. Make this
dependency explicit so all targets that use libc4script also
automatically pull in libmisc.
2015-12-13 14:23:52 +01:00
Sven Eberhardt bf63f2ef17 Gidl+Windmill moved to new "Defense.ocf" (title picture missing)
They aren't quite fitting at the moment and Clonko wants to share the buy menu.
2015-12-12 12:06:25 -05:00
Nicolas Hake 5abc112a81 CMake: Split GTK3 tests into a separate module
Nobody uses pkg-config on Windows, and we already have a perfectly
viable solution for finding libraries - it's called CMake. We're still
defering to pkg-config when it exists because who knows what arcane
cflags might be required on some systems.
2015-10-19 16:11:12 +02:00
Nicolas Hake b32a539474 mape: Add the PCH object to the MSVC build
mape uses several headers from OpenClonk that are marked for
pre-compilation. MSVC does not support using headers flagged as such
without also linking to the object file that gets generated from the
compilation step.
2015-10-19 15:43:28 +02:00
Nicolas Hake 4fcd475e79 CMake: Test for existence of the mape target before manipulating it
Instead of checking whether mape's special GTK could be found, just test
whether mape is being built or not.
2015-10-19 15:41:38 +02:00
Nicolas Hake 0cfe72337b Allow CMake to find gdk-pixbuf-csource instead of using the plain name
By leaving figuring out of the location to cmake, we don't rely on it
being in the PATH when the binaries get build.
2015-10-19 15:38:31 +02:00
Armin Burgmeier ef4ea2d931 Drop support for GTK+ 2
The minimum GTK version is now GTK+ 3.4, which is available since 2012.
It's part of Ubuntu LTS 12.04, and so should be available on any halfway
modern linux distribution.

This should allow getting rid of using deprecated GTK+ API much easier.
2015-10-18 14:45:52 -04:00
Nicolas Hake 9f03209ed7 Stop checking for nullptr
We're already requiring the compiler to implement C++11, so checking for
nullptr support again is useless.
2015-10-12 17:34:28 +02:00
Nicolas Hake a9bf9bfc36 Remove a bunch of vestigial autotools defines from config.h
autotools by default checks for a bunch of stuff absolutely nobody cares
about. The macros removed here were stuff left over from porting the old
autotools build to cmake.
2015-10-12 17:34:28 +02:00
Nicolas Hake 7f5abcd547 CMake: Stop removing obsolete variables from cache
For one, people are unlikely to still have these variables in their
cache, and for another, if building fails, the proper solution is to
start from a clean slate anyway.
2015-10-12 17:34:27 +02:00
Nicolas Hake 85f07b1365 CMake: Always prefer system TinyXML
I don't remember why we're even shipping our own copy of TinyXML when we
aren't doing it for any other library. Maybe we should just stop that.
2015-10-12 17:34:26 +02:00
Sven Eberhardt 675db52e38 Texture shape coverage fix and mape build fix. 2015-10-09 14:49:31 -04:00
Julius Michaelis 6fe58fd878 Add warning about old gcc when !HAVE_WORKING_REGEX
Related to ee859d8.
2015-10-03 13:42:46 +02:00
Nicolas Hake c8e1a38950 Revert "Replace strtod with strtof_l ..."
This reverts commit 139dee9874.

The commit introduced a memory leak on glibc, and broke the build on all
other platforms.
2015-10-01 20:50:40 +02:00
Julius Michaelis 139dee9874 Replace strtod with strtof_l in C4ScriptGuiWindow::SetPositionStringProperties to avoid locale problems
(That function could still use some more love, though: Error messages and not accepting ridiculous things when parsing.)
2015-10-01 19:50:05 +02:00
Julius Michaelis ee859d85e0 Remove boost any usage of boost libraries 2015-09-30 00:16:12 +02:00
Nicolas Hake 6a11e3e811 Stop checking for rvalue ref support
We already require support for std::unique_ptr, which itself requires
support for rvalue references. As such, we know we can use rvalue
references, and thus don't have to keep carrying dead code around.
2015-09-20 13:27:14 +02:00
Nicolas Hake 8e36b43f9c CMake: Split GLEW out into a module, look for both shared and static lib
On Windows, we need to know whether the library we're linking against is
a static library or a shared library import stub. If it's a shared lib
(and only then), we need to #define GLEW_STATIC.

Other OSes handle library imports differently and don't care.
2015-09-19 21:35:55 +02:00
Nicolas Hake 5d37444065 CMake: Update list of Boost versions yet again 2015-09-18 14:33:15 +02:00
Nicolas Hake 9c546d1d1d CMake: Link winmm to libmisc
libmisc contains C4TimeMilliseconds, which requires winmm.
2015-09-18 14:33:14 +02:00
Maikel de Vries dd0a01f3df fix oc_groups for cmake after tutorial folder change 2015-09-13 15:32:35 +02:00
Nicolas Hake 2b876a6cb6 C4Script: Split stubs from script runner 2015-09-04 13:21:06 +02:00
Sven Eberhardt 8551da87ac Added C4ScriptGuiWindow.h to sources in CMakeLists.txt.
This ensures it's in the file list in the MSVC IDE (and possibly others).

Also put C4ScriptGuiWindow.* into alphabetical sort order.
2015-09-03 23:15:48 -04:00
David Dormagen ac738735b2 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Script.c
	src/game/C4Game.cpp
	src/game/C4GraphicsSystem.cpp
	src/gamescript/C4GameScript.cpp
2015-09-02 08:19:34 +02:00
Sven Eberhardt 6ab6a1ac3c Add script interface for some EFX sound modifiers. 2015-08-27 21:44:23 -04:00
Armin Burgmeier 0cdafc278b Transform all mesh data to Clonk reference frame on load
Instead of doing the transformation when drawing a mesh. This allows making
the OpenGL normal matrix more consistent, since it does not include the
Ogre-To-Clonk transformation, and so that the transformation does not need
to be inverted in the shader.

As a side effect, all Attach transformations were updated, since before
they were specified in the OGRE reference frame, not the Clonk reference
frame.
2015-08-18 20:30:20 -04:00
David Dormagen 196f528201 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt
	planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt
	planet/Objects.ocd/Helpers.ocd/Dummy.ocd/Graphics.png
	planet/Objects.ocd/Items.ocd/Tools.ocd/WindBag.ocd/Script.c
	planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Producer.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Flagpole.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Pump.ocd/Script.c
	src/game/C4Game.cpp
	src/gamescript/C4GameScript.cpp
	src/gui/C4GameMessage.cpp
	src/landscape/C4Landscape.cpp
2015-06-03 22:32:36 +02:00
Nicolas Hake 2eb78b617d Split calculated values out of Version.txt
Version.txt should only contain values that you set manually. Anything
that's derived from that or calculated separately should be in a
separate file.
2015-05-21 23:09:01 +02:00
Nicolas Hake 5f46161433 Remove unused clone of C4PathFinder
Why the hell is there a second implementation of C4PathFinder around? It
wasn't even used anywhere.
2015-03-31 17:57:58 +02:00
hasufell 5f29846b7d Fix USE_SYSTEM_TINYXML
* fix the if-conditional
* don't use pkgconfig (there is no .pc file upstream)

Signed-off-by: Julius Michaelis <caesar@hg.openclonk.org>
(Added license to FindTinyXML.cmake)
2015-03-28 22:58:53 +09:00
Kevin Zheng fd6914f9cb Fix linking with SDL 2015-03-15 19:26:57 +01:00
Nicolas Hake 4cb97e7a03 OS X: Make app bundle renamable
XCode automatically sets EXECUTABLE_NAME correctly. We have to do it by
hand if we're not using XCode.
2015-03-15 16:03:44 +01:00
Nicolas Hake db295b8678 Add emulation of C++14's std::make_unique
Unlike std::make_shared, std::make_unique was unfortunately missing from
C++11. It's a useful utility though.
Technically, declaring a new name in the std namespace is undefined, but
the other way to make make_unique available to all callers regardless of
C++ version, putting it into a distinct utility namespace and importing
the declaration from std if available, makes for more ugly code.
2015-02-25 23:37:04 +01:00
Nicolas Hake 0b55cea227 Disable assertions in non-debug builds
Making the engine terminate when an assertion fails is a good thing in
debug builds, but keeping them enabled in release builds only hurts our
users.
2015-02-20 23:36:36 +01:00
Nicolas Hake 9bfd232ab5 Test whether GLDEBUGPROCARB's userParam is const or not
Depending on how current your headers are, the userParam parameter to
GLDEBUGPROCARB may be const, or it may not. The ARB has added the const
qualifier at some point after publishing the specs. Hooray for breaking
API changes.
2015-02-16 21:21:31 +01:00
Nicolas Hake 9093bde491 Suppress -Wcast-align on clang
Alignment doesn't matter on any platform we support, and unlike gcc,
clang uses natural alignment instead of required alignment to emit this
warning.
2015-02-14 19:45:32 +01:00
Nicolas Hake cdd490b53c Set some warning flags when compiling with clang
The Clang warning flags are woefully underdocumented, so I've just
matched the g++ list in as much as I knew the flags existed.
2015-02-14 00:11:51 +01:00
Nicolas Hake 69cdae5ef2 Use find_package instead of raw include to find libraries 2015-02-12 20:09:58 +01:00
Nicolas Hake 0076fc7d7b Fix DbgHelp check
CMake didn't always find the correct DbgHelp.lib on Win64. Somehow,
nobody seems to have noticed!
2015-02-08 15:03:08 +01:00
Sven Eberhardt e05c7de976 Flag UPnP includes as system to suppress warnings. 2015-02-07 22:46:52 +01:00
Sven Eberhardt f032662052 Mark getopt and tinyxml thirdparty includes as system libraries.
This should silence some warnings occuring in thirdparty code so warnings in our own code get the exposition they deserve.
2015-02-07 22:02:42 +01:00
Nicolas Hake e4fea50a9a Mark thirdparty as system headers so we don't get warnings from there
thirdparty needs to be pristine code so we can update those libraries
without having to figure out whether we need to apply some more patches.
This means we can't easily fix warnings in there; telling GCC that these
are system headers means it won't emit any.
2015-02-07 17:39:15 +01:00
Nicolas Hake c087a88977 Fall back to COMPILE_DEFINITIONS_DEBUG for old CMake
Debian Stable still ships 2.8.9, so for the time being we want to
support that version.
2015-01-27 17:58:31 +01:00
Günther Brammer 36ce941e4d cmake: Restore SDL-Mainloop build 2015-01-25 19:05:06 +01:00