Commit Graph

44 Commits

Author SHA1 Message Date
simendsjo
884d30b85a
Use GLVND also for old cmake versions (#2826)
Use GLVND also when legacy implementations exist for old cmake versions
<= 3.10. This is a breaking change for old cmake versions (prior to
around 2017-10-05) which will now use GLVND rather than defaulting to
libGL.

This fixes the following warning when building:

    CMake Warning (dev) at /gnu/store/qv13zgbmyx0vjav8iiqp772kp6rxvwnd-cmake-3.24.2/share/cmake-3.24/Modules/FindOpenGL.cmake:315 (message):
      Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
      available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
      cmake_policy command to set the policy and suppress this warning.

      FindOpenGL found both a legacy GL library:

        OPENGL_gl_LIBRARY: /home/simendsjo/.guix-profile/lib/libGL.so

      and GLVND libraries for OpenGL and GLX:

        OPENGL_opengl_LIBRARY: /home/simendsjo/.guix-profile/lib/libOpenGL.so
        OPENGL_glx_LIBRARY: /home/simendsjo/.guix-profile/lib/libGLX.so

      OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
      compatibility with CMake 3.10 and below the legacy GL library will be used.
    Call Stack (most recent call first):
      cmake/LibraryConfigurations.cmake:21 (find_package)
      src/CMakeLists.txt:46 (include)
    This warning is for project developers.  Use -Wno-dev to suppress it.

See https://cmake.org/cmake/help/latest/policy/CMP0072.html

Closes #2825
2022-12-11 13:37:38 +01:00
Ray
d241ee8516 ADDED: Optional support for PNM images (.ppm, .pgm) 2022-11-29 10:58:27 +01:00
Daijiro Fukuda
57bd84510f
Fix wrong compile definition (#2815) 2022-11-28 22:36:22 +01:00
Angga Permana
d91f30958f
Fix deprecation error on android api higher than 23 (#2778) 2022-10-27 11:38:25 +02:00
archie2x
e87caa2687
Fix #2621: Set CMP0054 policy to NEW and appropriately quote ${PLATFORM} (#2622) 2022-08-09 09:52:56 +02:00
MyUncle
6f3a633f2e
add: cmake config include guard (#2592) 2022-07-26 14:28:26 +02:00
Ray
e722a8dbef WARNING: BREAKING: REMOVED: *StorageValue() functions
Those functions were platform dependent and user has no control over the file created. They have been removed from raylib and just moved to `core_storage_values` example.
2022-07-05 13:24:14 +02:00
Richard Smith
3c3f08c416
Fix CMake build on Raspberry Pi OS Bullseye (#2548) 2022-06-24 10:50:24 +02:00
Patrick
76c3881944
Fixed Android CMake build error (#2486)
`android_native_app_glue.c` wasn't appended to the `raylib_sources` as other libraries were.

Co-authored-by: Patrick Martin <martinpatrick@google.com>
2022-05-20 17:21:45 +02:00
GoldenThumbs
07240b96ad
Fix OpenGL 4.3 graphics option in CMake (#2427) 2022-04-05 09:59:53 +02:00
Marco G. Maia
c5d2cc8e66
Update raylib-config.cmake (#2374)
Updated cmake to windows users.
So they can `find_package(raylib [...])` with exported target as raylib instead of ${raylib_LIBRARIES}, etc
2022-03-08 18:58:27 +01:00
locriacyber
1e436be51d
Make audio examples compile with external glfw on Linux (#2329) 2022-02-05 13:33:05 +01:00
Macoy Madson
6e9bb7e480
Add missing defines to CUSTOMIZE_BUILD block (#2318)
This fixes compilation and linking errors when CUSTOMIZE_BUILD is
ON. Any option wasn't actually applied if it wasn't in this list.

I also added a message which makes it a bit easier to confirm you have
successfully enabled an option.
2022-01-29 19:11:45 +01:00
hero2002
9d6fcd1710
Fixed Compiling Raylib for android Using cmake (#2270)
* Fixed Compiling Raylib for android Using cmake

* improved the cmake config for android so it don't conflict

* improved the cmake config for android so it don't conflict
2022-01-08 20:14:10 +01:00
Hristo Stamenov
024adc2538
Add find opengl for widnows too. (#1985)
* Add find opengl for widnows too.

* Also fix set LIBS_PRIVATE to bi similar to linux and apple targets
2021-09-10 20:31:36 +02:00
Hristo Stamenov
e1babab3cc
There no longer is a library glfw_objlib and now it is only glfw. (#1818) 2021-06-09 09:49:13 +02:00
Ben Beshara
6fe0a229e2
Bumped minimum GLFW vers in cmake (#1788) 2021-05-25 12:19:36 +02:00
Jon
c74230a9ea
Enable DRM platform cross compilation support (#1717)
* Log a warning if chdir failed, use agnostic CHDIR instead of chdir

* Only include libdrm directory explicitly when not cross compiling
2021-04-09 19:57:14 +02:00
Kirottu
19651cfaad
Added SUPPORT_STANDARD_FILEIO flag support for the CMake build system (#1638)
* Update CMakeOptions.txt

* Update config.h.in

* Added SUPPORT_STANDARD_FILEIO to CMakeOptions.txt

* Fixed typo

* Added SUPPORT_STANDARD_FILEIO to CompileDefinitions.cmake

Co-authored-by: KirottuM <kirottum@protonmail.com>
2021-03-08 22:12:27 +01:00
hristo
88a6f16c9a
Documentation cmake (#1549)
* Documenting the compiler flags

* Moved some android compiler flags and added documentation on them too.

* Some more restructuring.

Removed unnecessary comments that were self described by the code.
Added some more explanations around certain parts of CMake and especially around compiler flags.
2021-01-26 14:34:27 +01:00
hristo
f3ce3a6f74
Removing config.h.in file (#1546)
CMake relied on this file for configurations and also was interfering in the regular config.h by having a separate definition if building with CMake. This was not entirely correct so instead we will define compile time definitions separately through CMake (CompileDefinitions.cmake) and also will use the provided EXTERNAL_CONFIG_FLAGS that I found that will not use config.h in through the build process.

I also introduced a new compiler option (CUSTOMIZE_BUILD) that when OFF will use the default config.h and when ON will show other options for redefining your own options.

Fixed an error in rlgl.h where if you have both RLGL_STANDALONE and SUPPORT_VR_SIMULATOR you get a compile time error.
2021-01-25 10:47:53 +01:00
hristo
4bf7b00013
Removing test file. (#1545)
This test file is just testing compilation with the library works correctly but is no longer needed because:
- it is not cross platform
- it taps into the CTest system which is better suited for real unit/integration tests
- it can be incorporated into the pipeline of github actions instead in the future
2021-01-25 10:44:30 +01:00
Nikolas
a0d2b64747
Fix issue when trying to build raylib statically (#1544) 2021-01-22 23:43:06 +01:00
hristo
05dfbf3cd4
Remove STATIC and SHARED variables. (#1542)
As described in the official documentation https://cmake.org/cmake/help/v3.0/variable/BUILD_SHARED_LIBS.html this flag is global by default and controls if the library will be built as a shared or a static library allowing us to define only one call to the add_library function (without specifying its type). It is also added as an option to be visible in CMake GUI applications.
2021-01-22 00:07:22 +01:00
hristo
9821725c6b
Big cmake changes (#1514)
* Delete emscripten.cmake

This file is not needed at this point. EMSDK provides a toolchain file that has a lot more things in it and is better supported. Project currently works fine with the documentation provided in Emscripten SDK on how to build projects.

* First pass file separation.

The main two files are cleaner now. Only important things can be seen. Major changes include:
- raylib_static is now the alias instead of raylib
- Repeating segments are removed and pulled into separate files into <root>/cmake
- File is reordered to make more sense
- Installs are better structured
- Library is build into an output directory "raylib" instead of "src"
- All public header files are now set as a public header file
- Source files need to be listed (it is a bad practice to capture them using wildcards and file globs)
- CMakeLists are better commented

* Second pass on the example dirs.

They are quite complex so I'm more hesitant to do major changes. Also it works pretty well. Noticed that I forgot one of the seperated files and added it into src/CMakeLists.txt.

* Returned the header copy as it was convenient to have the public headers copied.

* A better description to the variable RAYLIB_IS_MAIN

Co-authored-by: Rob Loach <robloach@gmail.com>

* Remove debug message

Co-authored-by: Rob Loach <robloach@gmail.com>

* Improvements based on review.

* Simplify the install condition to not be platform specific as it was before.

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* Remove some CMAKE variables as they don't affect the build in any way

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

Co-authored-by: Rob Loach <robloach@gmail.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
2021-01-13 23:10:02 +01:00
hristo
6e79476650
Fixed the build for web using CMake. (#1452)
* Fixed the build for web using CMake.

I found that the build for me was failing and I added some if defined checks in the core.c file where the glfwSetWindowAttrib was used. (error: implicit declaration of function 'glfwSetWindowAttrib' is invalid in C99 [-Werror,-Wimplicit-function-declaration])

I also changed some values in the toolchain file so that it correctly uses the .bat files when on windows.

* Cleaned up the additional variables (they are not important)

* Added more improvements to cmakelists

Added the option to use the system provided Emscripten toolchain to be more uniform with other libraries.

Fixed and issue which prevented example being built from cmake and also building with html extensions properly.

* Fixed ENUM to STRING because of a missed warning
2020-12-13 20:29:47 +01:00
Adam Griffiths
b9ece86ffd
Add join_paths and join prefix with include/lib dirs (#1383)
Fixes #1380: incorrect usage of CMake paths which causes issues
on some more complicated environments (NixOS especially).
2020-09-25 16:20:49 +02:00
Ahmad Fatoum
6c9f6cf084 Revert "CMake: Don't create symlinks on unsupporting file systems (#539)"
As noted in #539, the symlink check was to support compiling raylib on
VirtualBox vboxfs as no symlinks are supported there.

With me using Linux as daily driver outside VirtualBox now, this 'feature'
is most likely unused by anyone, but still annoys other users (#791).
Just revert it and be done with it. If there are really others building
raylib on vboxfs or a similarly crippled file system under Linux, they
should now step forward when their build breaks.

This reverts commit b8ca51fd01.
2020-04-08 11:01:26 +02:00
Shy
81c44e32c3 ignore symlink creation failure error 2020-04-08 07:05:43 +02:00
Ahmad Fatoum
47137b1489
CMake: fix dependency build with -Draylib_USE_STATIC_LIBS=ON
Fixes #899, which made apparent three issues with how static libraries
are handled in raylib-config.cmake:

- XPREFIX is set before pkg_check_modules, which causes a duplicate
  STATIC in variables, e.g. PC_RAYLIB_STATIC_STATIC_.*
- raylib_static is searched for, but no library exists with that name
- raylib_LDFLAGS isn't populated properly

This commit fixes these.
2019-07-24 00:12:38 +02:00
myd7349
5134a3b61d Take care of raylib_USE_STATIC_LIBS when calling find_library 2019-04-09 18:03:26 +08:00
myd7349
61181f2c49 Fix CMake support on Win32 2019-04-09 18:03:25 +08:00
Ahmad Fatoum
3f09726331
CMake: Major cleanup to support find_package(raylib)
Remove that link_libraries_to_executable() hack and defines a proper
raylib target that can be used with target_link_libraries.

The same target is also available for external (user) code by using
find_package(raylib).

This results in:

- Remove hardcoded build directories from examples and games CMakeLists.txt
- Allow rlgl_standalone and other special examples to be built easily
- Allow CMake projects to find_package(raylib instead of fiddling with pkg-config
- Makes code a little more maintainable
- Fixes #471, #606.
- Makes code less confusing by removing the double use of PLATFORM (#584).

Note that this is still not _The Right Way_(TM), because normally
raylib-config.cmake (or its includes) would be automatically generated.
I didn't manage to get that to work though, so I went the easier route
of just wrapping pkg_check_modules for consumption by find_package.
2018-07-29 12:35:35 +02:00
Ahmad Fatoum
69e147417b
Travis CI: Add OpenAL-Configuration 2018-07-29 12:13:00 +02:00
Ahmad Fatoum
2b8c9f9a17
CMake: Fail when -D{PLATFORM,OPENGL_VERSION}=INVALID_VALUE
as well as -DUSE_EXTERNAL_GLFW.

Nips issues like #584 in the bud.
2018-07-23 21:00:48 +02:00
Ahmad Fatoum
c3aeaf4a49
Travis CI: Add test case for pkg-config 2018-07-03 21:35:28 +02:00
Ahmad Fatoum
61747508b0
CMake: Reuse libraries found by glfw CMake config
if (${PLATFORM} MATCHES "Desktop")
  target_link_libraries(${RAYLIB}_shared glfw ${GLFW_LIBRARIES})

was never true because PLATFORM STREQUAL "PLATFORM_DESKTOP"...

This fixes #551 and makes the changes suggested in #552 (commited as 965cc8ab)
unnecessary.
2018-07-03 21:35:27 +02:00
maficccc@gmail.com
965cc8ab6f Added support DragonFly os from BSD family 2018-06-23 17:02:04 +02:00
M
f89afaa335 CMake: Fix cannot find -lX11 (#552)
Temporary measure to fix a breakage on FreeBSD.
See #551 for more details.
2018-05-26 20:56:24 +02:00
Ahmad Fatoum
e025e62445 cmake: Fix PLATFORM_WEB build
Did this ever work? Surely, doesn't look like it...
2018-05-21 12:15:39 +02:00
Ahmad Fatoum
ad8509732c
CMake: Fix (Add?) Android support
Not sure if this ever worked, but now it at least compiles.
2018-05-21 01:08:29 +02:00
Ahmad Fatoum
ff55af14f9
CMake: Move reusable code to new cmake/ directory 2018-05-21 01:08:29 +02:00
Ahmad Fatoum
ae26e083b4
CMake: Add default build type if none specified
Release, unless we are in a Git repo, then it's Debug.
2018-05-21 01:08:28 +02:00
Ahmad Fatoum
20ddc6a2bb
Move utils.cmake to separate cmake/ directory 2018-05-21 01:08:28 +02:00