Commit Graph

69 Commits

Author SHA1 Message Date
Peter0x44 74350fa7cf
[build] CMake: Delete BuildOptions.cmake (#4277)
This file seems to not do anything useful. From what I can tell the
OSX_FATLIB option sets CMAKE_OSX_ARCHITECTURES to "x86_64;i386". This
doesn't account for the arm that apple now has, as well as 32 bit
support being completely removed, and I think it's entirely reasonable
to expect users to pass the necessary architectures they want
themselves. It's possible this could break some users who rely on this,
but I sincerely doubt anyone does. The solution is trivial either way
(put -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" on the command line
yourself)

The second part of BuildOptions.cmake claims to set PLATFORM to "Web" if
the emscripten toolchain file is used (if (EMSCRIPTEN)), but it does not
work correctly anyway. Currently, glfw searches for wayland and x11
libraries and fails likeso:

CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:645 (message):
  The following required packages were not found:
   - wayland-client>=0.2.7
   - wayland-cursor>=0.2.7
   - wayland-egl>=0.2.7
   - xkbcommon>=0.5.0

Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:873 (_pkg_check_modules_internal)
  src/external/glfw/src/CMakeLists.txt:163 (pkg_check_modules)

Considering this code doesn't work as described, it's okay to delete it.
I think a better check should be implemented, but that is for a
different PR.
2024-08-23 22:21:22 +02:00
Lázaro Albuquerque 24726a4bc2
Removes the redundant USE_AUDIO flag (#4158) 2024-07-16 14:16:41 +02:00
manuel5975p e7acdd12d8
[build] CMake: support OpenGL ES3 in `LibraryConfigurations.cmake` (#4079)
* Allow ES3 in LibraryConfigurations.cmake

* Put FULL_ES3 as linker option
2024-06-21 09:07:01 +02:00
Lázaro Albuquerque 307c998495
[build] Making `config.h` fully available to CMake users (#4044)
* Create ParseConfigHeader.cmake

This script parses the config.h file to automate the process of exposing the configuration flags and configuration values found in the latter.

* Update CompileDefinitions.cmake

Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent.

* Update CMakeOptions.txt

Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent.

* Update CMakeLists.txt

Changes required to make possible building raylib for web on Windows 10.

* Update LibraryConfigurations.cmake

Removes a warning that linker-only flags were being passed to the compiler, which is in accordance to https://emscripten.org/docs/tools_reference/settings_reference.html.

* Update CMakeOptions.txt

Removed clutter.

* Update CompileDefinitions.cmake

Removed clutter.

* Update CompileDefinitions.cmake

Some applications might check for PLATFORM_WEB instead of __EMSCRIPTEN__.

* Update CompileDefinitions.cmake

Reverting

* Update CMakeLists.txt

USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO.

* Update CompileDefinitions.cmake

USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO.

* Update ParseConfigHeader.cmake

* Revert "Update CMakeLists.txt"

This reverts commit 1785fc06b5.

* Revert "Update CompileDefinitions.cmake"

This reverts commit 62f9a3a0ea.

* Revert "Update CMakeLists.txt"

This reverts commit 3e7912144e.

* Revert "Update LibraryConfigurations.cmake"

This reverts commit bcc4310c49.
2024-06-16 10:49:59 +02:00
Lázaro Albuquerque cc40a91343
[build] Fix some warnings on web builds and remove some redundant flags. (#4069)
* update

* Revert "update"

This reverts commit e8adcabd94.

* update

* remove a not stricly required flag
2024-06-16 10:42:50 +02:00
bohonghuang d80febde7d
[rlgl] Implement vertex normals for RLGL immediate drawing mode (#3866)
* Fix several non-functional `target_compile_definitions`

* Avoid hardcoding the default vertex attribute locations

* Implement functional `rlNormal3f`

* Add normal definitions for `DrawCube`

* Update the basic lighting example to use `DrawCube` and `DrawPlane`
2024-04-23 14:22:29 +02:00
Alexandre Almeida 85a46e42bd
CMake: Remove USE_WAYLAND option (#3851)
* CMake: Remove USE_WAYLAND option

* Consistency fix

* Fix oversight
2024-03-04 19:59:26 +01:00
Alexandre Almeida dc1cec8bab
Remove GLFW mouse passthrough hack and increase GLFW version in CMake (#3852) 2024-03-01 08:34:53 +01:00
Alexandre Almeida 6589311a0b
Update GLFW to 3.4 (#3827)
* Update GLFW to 3.4 (draft)

* Add _glfwConnectNull() function to rglfw.c

* Update rglfw.c

* Update Makefile

* Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND

* Revert "Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND"

This reverts commit 9e79abde78.

* GlfwImport.cmake: Replace GLFW_USE_WAYLAND with GLFW_BUILD_WAYLAND

* Update rglfw.c

* Output platform selected by GLFW to TRACELOG

* GLFW has removed Mir support
2024-02-29 18:29:32 +01:00
Christian W. Zuckschwerdt 074fbb0264
Fix DRM cross-compile without sysroot (#3839) 2024-02-27 13:08:16 +01:00
mooff 4f283a0789
Add CMake PLATFORM option for Desktop SDL (#3809) 2024-02-22 23:05:41 +01:00
Peter0x44 8ae804ff9a
Fix cmake-built libraylib.a to properly include GLFW's object files (#3598)
I broke this in PR #3573 by accidentally removing too much
The examples still compiled fine so I didn't notice - my guess is that
cmake was still adding a separate link to glfw manually.
2023-12-03 19:53:11 +01:00
Peter0x44 e7a486fa81
Hide unneeded internal symbols when building raylib as an so or dylib (#3573) 2023-11-28 20:43:45 +01:00
mooff 3b09ef58ca
Add ES 3.0 to CMakeOptions (#3514) 2023-11-07 08:41:15 +01:00
Aniket Teredesai b9f98dd8cd
[build]: add uninstall cmake target (#3511) 2023-11-06 10:12:36 +01:00
MichaelFiber 18e9784c6d
Remove PLATFORM_RPI (#3232)
* Remove PLATFORM_RPI

* remove build artifacts

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: Ray <raysan5@gmail.com>
2023-09-07 17:42:28 +02:00
Asdqwe 8bd6bb622c
Add SUPPORT_FILEFORMAT_SVG to cmake (#3284) 2023-09-02 22:38:10 +02:00
iacore 76adf883fd
Fix CMake extraneous -lglfw (#3266)
Closes #3265.

The problem: LIBS_PRIVATE is a list of library names (used by pkg-config), but the shared library of the same name doesn't always exist.
2023-08-27 15:43:39 +02:00
Asdqwe 71a8d09a63
Add missing cmake options (#3267) 2023-08-27 15:42:45 +02:00
ubkp 5b4aaf4eb1
Adds CMake option for SUPPORT_CUSTOM_FRAME_CONTROL (#3221) 2023-08-03 10:29:45 +02:00
Roy Qu 22895ba14f
fix: cmake option "OPENGL_VERSION" doesn't work (#3170) 2023-07-13 21:20:06 +02:00
RayIT 15cbf313bb
Enhanced cmake part for OpenBSD (#3086)
* Fixed compile on OpenBSD

* Changed to not use seperate UNIX for cmake
2023-05-28 14:49:33 +02:00
RayIT 4a371a5197
Fixed compile on OpenBSD (#3085) 2023-05-28 11:33:14 +02:00
KOLANICH 342b18da03
Add packaging for distros with deb- and rpm-based packages. (#2877) 2023-01-21 18:50:38 +01:00
Go Watanabe f549f67be9
OpenGLES 2.0 support on PLATFORM_DESKTOP (#2840)
* OpenGLES 2.0 support on PLATFORM_DESKTOP

* exmples raylib_opengl_interop desktop GLES2 support

* rename gles2.h -> glad_gles2.h
2023-01-10 12:34:06 +01:00
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