Commit Graph

210 Commits

Author SHA1 Message Date
Camilla Löwy
8a5fd0c5a4 Replace ad-hoc CMake code with DEFINE_SYMBOL
This target property does what we were doing manually.
2019-12-15 18:37:56 +01:00
Camilla Löwy
a5ed740d9d Fix use of CMake 3.13 command target_link_options 2019-12-15 18:37:56 +01:00
Camilla Löwy
a264d32987 Replace CMake list variables with target_sources 2019-12-15 18:37:56 +01:00
Camilla Löwy
2551829f75 Win32: Add VERSIONINFO resource to GLFW DLL
This will let people see the API version in the Explorer property box.
2019-12-11 21:02:08 +01:00
Camilla Löwy
59055d585f Update minimum required CMake version to 3.1 2019-12-09 23:48:26 +01:00
Camilla Löwy
c194193797 Replace CMake generator expression with variable
Generator expressions are amazing but best used in moderation.
2019-12-09 23:35:51 +01:00
Camilla Löwy
9dc365f192 Merge GCC/Clang specific CMake blocks 2019-12-09 23:35:51 +01:00
Camilla Löwy
197193ac0b Fix source list for Objective-C fix 2019-12-09 23:35:51 +01:00
Camilla Löwy
9486ec0c02 Fix source list for -Wdeclaration-after-statement
The context creation files were not included on platforms other than
Win32.
2019-12-09 23:35:50 +01:00
Camilla Löwy
bc7b19cbd1 Remove tab character 2019-12-09 23:35:50 +01:00
Camilla Löwy
f6d44cedfd Trust CMake to do the right thing for static libs
CMake understands what private library dependencies for a static library
means and handles it correctly.
2019-12-09 23:35:40 +01:00
Camilla Löwy
33683ec60e Remove stray characters from hardcoded CFLAGS
The additional '>' characters were appended to the compiler option.

Related to #1576.
2019-10-29 12:04:47 +01:00
Camilla Löwy
04f7f55f07 Cleanup
Related to #1585.
2019-10-29 12:04:47 +01:00
Pablo Prietz
4d0ae4ffa7 Fix CMake 3.0 - 3.6 support regression
Replaces `VERSION_GREATER_EQUAL` with `VERSION_EQUAL OR
VERSION_GREATER`.  `VERSION_GREATER_EQUAL` was only added in CMake 3.7.

Fixes #1584.
Closes #1585.
2019-10-29 12:04:46 +01:00
Guillaume Racicot
8f852e0833 Enable C99 explicitly with CMake where available
This enables compilation as C99 where supported by the compiler.
A workaround with per-compiler hardcoded flags is used for CMake 3.0,
which does not support the C_STANDARD target property.

Fixes #1560.
Closes #1576.
2019-10-16 02:33:12 +02:00
Camilla Löwy
3ec8f4a7f5 Win32: Disable dynamic libgcc for MinGW DLL 2019-10-03 21:05:49 +02:00
Ave Milia
2e039d9275 CMake: remove -DGLFW_DLL on non-Windows targets
When using GLFW with CMake and installed GLFW binaries, `-DGLFW_DLL` is
passed on Linux, which should not happen.

Closes #1530.
2019-07-22 21:37:22 +02:00
Camilla Löwy
b430bc4935 Cocoa: Fix internal symbol hiding for dylib
The default symbol visibility was not set to hidden on macOS.
2019-07-16 23:14:16 +02:00
Camilla Löwy
a255e7ace6 Move to the modern CMake project version option
This replaces the manual ad-hoc version variables we have used since
CMake 2.x (and GLFW 2.x lite).
2019-05-17 16:12:52 +02:00
Konstantin Podsvirov
15af302f77 Fix use of absolute path in INSTALL_INTERFACE
Closes #1470.
2019-05-17 16:12:52 +02:00
Camilla Löwy
1d95acdf56 Cocoa: Fix detection of Clang 2019-02-14 00:19:45 +01:00
schraf
2e70950c0f Fix quoting of CMAKE_C_COMPILER_ID
I was getting an error in this cmake file when using 3.10.2 on linux.
Here was the error message I was getting:

[cmake] CMake Error at external/glfw/src/CMakeLists.txt:82 (if):
[cmake]   if given arguments:
[cmake]
[cmake]     "STREQUAL" "GNU" "OR" "STREQUAL" "Clang"
[cmake]
[cmake]   Unknown arguments specified

Adding the quotes around the cmake variables seems to do the trick. That
was also done with the STREQUAL condition earlier on line 66.

Closes #1411.
2019-02-14 00:19:45 +01:00
Rolf Eike Beer
f9923e9095 Use GNUInstallDirs for install destinations
This has the advantage that the user may override e.g. the include
location, and the correct libdir (lib, lib64, lib/something) is
automatically determined.

Closes #1367.
2018-12-03 19:28:31 +01:00
Emmanuel Gil Peyrot
cc805c0963 Mir: Remove this experimental backend
As of the release of Mir 1.0, libmirclient has been deprecated[1] and
its developers recommend clients using it to switch to Wayland.  This
patch removes support for libmirclient and instruct users to use the
experimental Wayland backend instead.

[1] https://discourse.ubuntu.com/t/mir-news-28th-september-2018/8184
2018-10-05 11:59:26 +02:00
Emmanuel Gil Peyrot
dcd2a19d90 Wayland: Add support for xdg-decoration
This allows compositors which prefer to draw the decorations around
clients to do so, rather than letting GLFW draw its own decorations.
The appearance is thus entirely subject to the compositor used, but
should generally be better than the current solid colour decorations we
have, which we continue to use when the compositor doesn’t support this
protocol or tells us to draw the decorations ourselves.

This new protocol has been tested against wlroots’s rootston compositor.

Fixes #1257.
2018-10-01 16:37:24 +02:00
Greg V
0a3c4f5d80 Add support for Wayland on FreeBSD and other OSes 2018-03-27 22:03:37 +02:00
Emmanuel Gil Peyrot
79e16baca3 Add wp_viewporter support 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
0d5f7a9eab Wayland: Add xdg-shell to the build system 2018-01-29 03:59:47 +01:00
Camilla Löwy
973bf29622 Remove use of non-standard function strdup
Related to #873.
2018-01-17 11:56:35 +01:00
Emmanuel Gil Peyrot
10c18f8124 Use quotes consistently for wayland-protocols 2017-12-20 04:53:42 +01:00
Emmanuel Gil Peyrot
65166858ff Wayland: Add support for the idle-inhibit protocol
Closes #955.
2017-11-20 22:27:37 +01:00
Camilla Löwy
0882fffc37 Fix missing CMake file path quoting 2017-08-20 14:47:44 +02:00
Camilla Löwy
2d0ffd788b Fix type in filename 2017-08-13 21:24:58 +02:00
Camilla Löwy
e27dc50689 Add non-VS warning about C99 declarations
This adds a warning in GCC and Clang about using intermingled
variable declarations in source files that will be built by VS.

This currently excludes egl_context.c and osmesa_context.c.  It will
be addressed by a separate commit.

Related to #1026.
2017-08-13 21:24:58 +02:00
Camilla Löwy
3ee7f8f695 Cocoa: Fix warnings caused by _XOPEN_SOURCE 2017-08-10 22:24:44 +02:00
Camilla Löwy
e376404d38 Cleanup 2017-08-09 16:26:29 +02:00
Camilla Löwy
079518617c Linux: Fix missing feature macro for using strdup
This adds _XOPEN_SOURCE = 500.

Fixes #1055.
2017-08-09 16:25:47 +02:00
Camilla Löwy
953106e74d Add support for SDL_GameControllerDB
This adds support for importing and applying mappings from the
SDL_GameControllerDB database.

Related to #900.
2017-07-07 15:52:33 +02:00
Camilla Löwy
58c05ba8ee Fix library destination for DLL platforms
Fixes #1035.
2017-06-28 12:07:39 +02:00
Camilla Löwy
a3007b9b0e Rename thread source files
This to reflect that they now contain more than TLS.
2017-06-08 16:09:14 +02:00
Emmanuel Gil Peyrot
0e0862cfc7 Wayland: Fix broken build
Regression caused by e9560ef021.
2017-03-03 17:51:40 +00:00
Camilla Löwy
d88347ee7d Mir: Fix broken build
Regression caused by e9560ef021.
2017-03-02 17:52:32 +01:00
Camilla Löwy
53f46d32e2 Make OSMesa backend an almost proper null backend
It still depends on POSIX time and TLS.
2017-02-28 21:57:43 +01:00
Camilla Löwy
e9560ef021 Add GLFW_OSMESA_CONTEXT_API
This allows the creation of OpenGL contexts via OSMesa on existing
platforms.  It does not add a compile- or link-time dependency on
OSMesa.

Fixes #281.
2017-02-28 20:38:10 +01:00
Camilla Löwy
67a55efa27 Add null joystick backend
This prepares the X11 backend to support other joystick APIs, for
example the FreeBSD libusb one.
2017-02-01 03:07:25 +01:00
Camilla Löwy
ec410fb6fe Cocoa: Enable EGL 2017-01-02 15:32:55 +01:00
Jason Daly
368fa9475d Add headless OSMesa backend
Allows creation and drawing to in-memory OpenGL contexts.

This backend does not provide input.

Related to #850.
2016-11-09 01:23:43 +01:00
Camilla Berglund
ef80beab81 Add run-time context creation API selection
Fixes #145.
2016-05-04 17:00:07 +02:00
Jonas Ådahl
cb08dc574c wayland: Implement 'DISABLED' cursor mode
This implements support for the 'DISABLED' cursor mode, which
effectively means locking the pointer to the surface. The cursor is also
explicitly hidden.

This adds two new build dependencies: wayland-scanner and
wayland-protocols.

Closes #708.
2016-02-22 12:36:34 +01:00
Camilla Berglund
9b75bffc88 Add basic Vulkan support
Added GLFW_INCLUDE_VULKAN.  Added glfwVulkanSupported,
glfwGetRequiredInstanceExtensions, glfwGetInstanceProcAddress,
glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface.
Added port of LunarG SDK tri example.
2016-02-16 14:58:58 +01:00
Camilla Berglund
7f7ad39e15 CMake target installation fixes 2016-02-02 06:10:22 +01:00
Marcus Geelnard
075140aefe Add public header path to target interface
Closes #697.
2016-02-02 06:00:18 +01:00
Nicholas Vitovitch
453631773e Export transitive dependencies for static library 2016-02-02 06:00:18 +01:00
Zbigniew Mandziejewicz
8637612908 Add GLFW_DLL to target interface 2016-02-02 06:00:18 +01:00
Camilla Berglund
d2d57c70e2 Fix pkg-config file generation regression
Fixes regression cased by 37c93ba031.

Fixes #664.
Closes #679.
2015-12-30 21:09:40 +01:00
Camilla Berglund
37c93ba031 Compiler flag cleanup 2015-12-15 22:37:23 +01:00
Camilla Berglund
7fec7a0569 Make source file names more consistent
Use platform prefix for files specific to that platform AND that have no
credible alternative API on that platform.

The exception is WinMM, which will be replaced before 3.2.
2015-12-13 14:51:44 +01:00
Camilla Berglund
12b6c56903 Add suffixes to platform specific helper functions
Also merge win32_tls.h into win32_platform.h.
2015-12-13 14:50:59 +01:00
Camilla Berglund
eea46be4e6 Fix missing MinGW import library prefix
Fixes #657.
2015-12-12 18:08:45 +01:00
Camilla Berglund
5f6aa9c34c Added IDE folders to CMake files.
Fixes #328.
2015-01-05 01:19:02 +01:00
BrandonSchaefer
cfb7d2f036 Start with the skeleton code for Mir support. 2014-11-10 02:00:14 +01:00
Camilla Berglund
5f13279557 Merged time functions into input module. 2014-10-13 15:48:40 +02:00
Camilla Berglund
bb98eae131 Merged joystick functions into input module. 2014-10-13 15:48:40 +02:00
Camilla Berglund
2a255e49e2 Made static library build with -fPIC for Rust.
Fixes #199.
2014-10-07 12:48:01 +02:00
Camilla Berglund
8d170c7f47 Merged clipboard code into input. 2014-09-09 16:36:41 +02:00
Camilla Berglund
59d1aa52f2 Merged gamma files into monitor files. 2014-08-18 12:31:48 +02:00
Camilla Berglund
3b7d34a1d5 Moved XKB header to header variable. 2014-08-11 23:56:05 +02:00
Camilla Berglund
aa4ec94d71 Removed link interface no-op.
Closes #327.
2014-08-11 20:30:21 +02:00
Camilla Berglund
6e0ea02f17 Quoted all CMake paths with substitution.
Fixes #258.
2014-08-11 20:26:37 +02:00
Jonas Ådahl
9ac854b7bb wayland: Add keyboard support
Adds libxkbcommon as a dependency when enabling the Wayland backend.
2014-06-29 23:21:06 +02:00
Jonas Ådahl
2f71bfc152 x11: Move KeySym to unicode converter out of x11 backend
To be used by the Wayland backend.
2014-06-29 23:18:40 +02:00
Camilla Berglund
1127c0e6e5 Renamed Wayland files to match prefix. 2014-04-08 17:47:38 +02:00
Camilla Berglund
7c925353a5 Renamed context module headers. 2014-04-08 17:47:38 +02:00
Camilla Berglund
8113c00712 Merged CMake platform file picking blocks. 2014-04-08 17:47:38 +02:00
Camilla Berglund
17d9051b82 Separated time state from window system state. 2014-04-08 17:47:38 +02:00
Camilla Berglund
fce0114174 Renamed POSIX time module. 2014-04-08 17:47:38 +02:00
Camilla Berglund
660034332d Separated joystick state from window system state.
This is partially in preparation for pending support for additional
joystick APIs like XInput, DirectInput and IOHID.
2014-04-08 16:07:21 +02:00
Camilla Berglund
b7fc8099f1 Removed duplicate addition of POSIX time header. 2014-04-08 16:07:20 +02:00
Jonas Ådahl
8e99996321 Introduce experimental Wayland backend
This patch introduces a new backend that enables GLFW applications to
run on Wayland. For now, only output is supported (windowed and
fullscreen). Pointer cursor management, input devices, clipboard etc are
not supported yet.

There are some concepts that can not be supported, more specifically
glfwSetWindowPos, glfwGetWindowPos and glfwSetCursorPos, as they are not
supported by Wayland.

This patch also changes the time and joystick implementations used by the
X11 backend to be shared between the Wayland backend and the X11 backend.
2014-04-08 16:07:20 +02:00
Camilla Berglund
78efc18079 Split out TLS code into separate modules.
This allows the TLS code to be re-used by partial ports like EGL.
2014-03-30 15:24:09 +02:00
Camilla Berglund
23021422f3 Added explicit configuration header macro. 2013-11-20 12:06:07 +01:00
Camilla Berglund
16e63adc40 Tenative setting of install_name. 2013-10-16 20:56:59 +02:00
Andrew Corrigan
34f1c298b6 config.h.in --> glfw_config.h.in 2013-10-04 09:41:08 -04:00
Camilla Berglund
10017b27bb Cleanup. 2013-06-17 12:46:51 +02:00
Camilla Berglund
01ccc56423 Added missing headers to library target. 2013-06-17 10:31:25 +02:00
Camilla Berglund
d31322cdcd Added option for disabling install. 2013-06-16 13:31:39 +02:00
Camilla Berglund
15ed715f4e Moved public headers to the GLFW directory. 2013-05-22 22:46:34 +02:00
Lambert Clara
f6eccf145b Add glfwConfig module.
This module allows cmake projects to find glfw with FIND_PACKAGE.
2013-05-12 16:55:33 +02:00
Camilla Berglund
121ce7fbd6 Renamed X11 keysym to Unicode conversion file. 2013-01-17 18:59:35 +01:00
Camilla Berglund
cc45a9e53d Updated native API and merged into related files. 2013-01-15 22:38:14 +01:00
Camilla Berglund
73cdc34df7 Merge branch 'master' into multi-monitor
Conflicts:
	CMakeLists.txt
	readme.html
	src/CMakeLists.txt
	src/cocoa_platform.h
	src/win32_platform.h
	src/x11_platform.h
	tests/events.c
2012-12-02 20:52:03 +01:00
Camilla Berglund
ccdb776cc3 Cleanup of configuration variable use. 2012-12-02 19:13:01 +01:00
Camilla Berglund
47c11b4ea6 Tweaked comment. 2012-12-02 19:02:32 +01:00
Camilla Berglund
41bc0d18f4 Merge branch 'master' into multi-monitor
Conflicts:
	include/GL/glfw3.h
	readme.html
	src/CMakeLists.txt
	src/win32_window.c
	src/window.c
	src/x11_window.c
	tests/clipboard.c
	tests/defaults.c
	tests/events.c
	tests/fsfocus.c
	tests/glfwinfo.c
	tests/joysticks.c
	tests/peter.c
	tests/sharing.c
	tests/tearing.c
	tests/title.c
	tests/windows.c
2012-11-27 16:55:04 +01:00
Camilla Berglund
1eef0f0869 Renamed context module files. 2012-11-27 15:21:49 +01:00
Camilla Berglund
5ea3591586 Cocoa NSGL fixes. 2012-11-27 15:17:24 +01:00
Camilla Berglund
34d383399c Finished initial window/context backend split. 2012-11-27 15:02:26 +01:00
Camilla Berglund
b934cdf573 Begun preparations for Win32 EGL support. 2012-11-27 13:07:26 +01:00
Camilla Berglund
e4ddcefc14 Merge branch 'master' into EGL
Conflicts:
	CMakeLists.txt
	include/GL/glfw3.h
	readme.html
	src/CMakeLists.txt
	src/cocoa_window.m
	src/config.h.in
	src/glx_opengl.c
	src/internal.h
	src/opengl.c
	src/window.c
	tests/glfwinfo.c
2012-11-27 12:21:54 +01:00
m@bitsnbites.eu
1c21fc1383 Removed GLFW_SYSTEM_KEYS from the GLFW API
Rationale: Disabling system commands is inherently
dangerous, and should not be encouraged. Also, it's very
difficult to define and implement a reliable and
consistent cross-platform mechanism.
2012-11-10 22:20:47 +01:00