-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Match CMakeOptions.txt options default values #3258
Conversation
I am in no position to assess the wisdom of that. However, an alternative is to simply have those in CMake as previously specified but to also define I have no idea what kind of edge cases/holes might sneak in with that approach, though. I think the expectation is that if neither CMAKE (nor command line) nor |
Hello @orcmid Thanks for the reply! The issue this pull request meant to address was that while compiling directly with For example, it did not made sense to me that while compiling with Since all other defines match on both, it seemed like the most logical solution would be to make CMakeOptions.txt have the same default values as config.h, thus ensuring the same default build result for both (if nothing is changed by the user). A rework of the Best regards. |
If you remove the Ultimately, if you want to change those choices, you have to change something in the installed raylib library. It seems that is what config.h probably needs to be in a That makes things a little trickier for neophytes though. It does seem better than having these mysterious conflicts between CMake and make builds and other problems with "poisoning" |
Hello @orcmid Thanks for the reply! In my opinion, I don't think it's expected that the user would remove files from the distribution. Neither that a user (specially a new user) would create a config.h from scratch, given the size, complexity and amount of options there. None of those things are in the scope of this pull request. All I wish is that the defaults match, so it won't accidentaly cause different default built results. I have no intent to change anything in the build system/structure in any way. Best regards. |
I think I have misled you somehow. My suggestion is that There's also something that needs to be done about documenting I mentioned other safeguards that can be done instead, but that may be too complicated. |
Hello @orcmid Thanks for the reply! Oh, I see. Well, I guess that level of change is "above my pay grade". I'm just after that small fix at the moment. Best regards. |
@asdqwe thanks for the review, alighning
I don't maintain the CMake build system but it think keeping a The problem with those mechanisms is that they could be miss-aligned easely... but still, that's ok, build configuration is up to the user, independently of default values. I'm also considering to reduce the number of build options, just noticed that some options are always required and the overhead added is really minimal (i.e. compress/decompress functionality). |
Hello @raysan5 Thanks for the reply and explanation! I know you mentioned reducing the number of build options, but I noticed a few missing on CMakeOptions.txt that appear to be relevant for the user configuration:
I can send a pull request to add those, if that's ok. Best regards. |
@asdqwe Yeah, those flags should be added to Please note that I'm not the maintainer of CMake build system, it was added for convenience by some user. Consequently, it could not be so regularly updated like the other available build systems that I manage (Makefile, Visual Studio projects). |
I think I've said this already, but I'll try one more time. Anything CMake does not set will be handled by I recommend that The problem with this CMake/config.h duality it puts beginners at risk of an IED trap when a modification to Most of all, I think there needs to be more understanding of |
@orcmid I think it should probably be better documented, but, in any case, users tweaking it (or the related build options) should be advance users with some knowledge of build systems. |
* Prettified a comment * fixed broken indentation caused by another commit. the commit renamed a bool to int and broke indentation: 233cf39 * Changed 0.001 and 0.00001 to EPSILON This commit is untested. I don't know what consequences this has. Since the commits that added these numbers were before epsilon was added, I have assumed that epsilon could replace them. * Prettied up indentation in a few places * removed spacing around *, standardizing it. * I may have gotten overboard with indentation * removed a few useless parenthesis * Added fortran-raylib * Fix examples/others/rlgl_standalone.c compilation issue (#3242) * Update BINDINGS.md * Ignore unused return value of GetCodepointNext in GetCodepointCount (#3241) * Ignore unused return value of GetCodepointNext in GetCodepointCount Removes the last warning from non-external libraries when compiling with the default build configuration on x64 Linux. * Remove unnecessary void cast in GetCodepointCount * Fix #3246 * Revert "Fix #3246" This reverts commit e4dcbd5. * Fix text_unicode.c example crashing (#3250) * Fix text_unicode.c example crashing * Adjust the text_unicode.c example crashing fix * tweaks * add build.zig options for individual modules (#3254) * Add `IsKeyPressedRepeat` (desktop only) (#3245) Since the key pressed are handle by comparing current vs previous state (ie frame), a special way is needed to handle key repeats. * Reviewed `IsKeyPressedRepeat()` #3248 * Update rcore.c (#3255) * Match CMakeOptions.txt options default values (#3258) * Fix SetClipboardText for web (#3257) * [Image] Validate that ImageDrawRectangleRec is drawing entirely inside the image (#3264) * Add a function to clone a sound and share data with another sound. * rename items based on feedback * PR Feedback, use custom unload for sound alias, not variant of normal sound unloading * sound_multi example * Validate that image rect drawing is inside the image so we don't overflow a buffer * remove files that should not have been added. * remove changes that should not have been * revert * adsfasdfsdfsdf * Add Vector3 Projecting and Rejection to Raymath (#3263) * Update raymath.h * formatting * [Feature] IsKey... safety checks and more (#3256) * [Feature] Add GetKeyRepeat * Update rcore.c * Simpler design, only one repeat per frame * Update config.h * Update rcore.c * Add KEYBOARD_KEYS_MASK * Update config.h * reversions * Update rcore.c * Update rcore.c * change docs * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update raylib.h * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Fix bug where default shaders was not linking. (#3261) * Formating review * Add missing cmake options (#3267) * 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. * Fix example/models/models_loading_gltf.c controls (#3268) * Fix example/models/models_loading_m3d.c controls (#3269) * Remove e from secondes (#3270) * Fix example/audio/audio_module_player.c help instructions and small bug (#3272) * Fix example/audio/audio_module_player.c help instructions and small bug * Update example/audio/audio_module_player.png screenshot * Use type name instead of valid specifier long long --> long long int * REVIEWED: `GetFileLength()`, added comment #3262 * Update examples/models/models_loading_gltf.png;m3d.png screenshots (#3273) * Remove a duplicated screenshot and add missing one (#3275) * Add examples/shaders/shaders_lightmap.c to Makefiles (#3276) * Fix examples/others/easings_testbed.c help instructions and small tweak (#3277) * Fix examples/shaders/shaders_texture_outline.c help instructions (#3278) * Fix examples/shapes/shapes_collision_area.c help instructions (#3279) * RENAMED: LoadFont*() parameter names for consistency and coherence * Fix uninitialized thread-locals in stbi #3282 (#3283) * REVIEWED: Added `SetTextLineSpacing()` to multiline examples * REVIEWED: Data size type consistency between functions #3168 * Some tweaks * Use internal default allocators, instead of user-exposed ones * Added rudimentary SVG support. (#2738) * Added rudimentary SVG support. Added 2 functions ImageLoadSvg and ImageLoadSvgWithSize. * Added an example on how to use ImageLoadSvgWithSize and adjusted Makefiles accordingly. * Added actual correct example file. * Reviewed the code to keep the raylib coding conventions in mind. Moved the LoadImageSvg() code into LoadImage() guarded by SUPPORT_FILEFORMAT_SVG. Renamed LoadImageSvgWithSize() to LoadImageSvg(). Added a LoadImageSvgFromString() function to parse the loaded SVG into an actual image. This does the bulk of the work. * Fixed typo. --------- Co-authored-by: Ray <raysan5@gmail.com> * REVIEWED: `LoadImageSvg()` * REVIEWED: `LoadImageSvg()` * Add SUPPORT_FILEFORMAT_SVG to cmake (#3284) * Fix examples/textures/textures_fog_of_war.c help instructions (#3285) * Fix examples/textures/textures_image_rotate.c help instructions (#3286) * Update rtextures.c * Fix #3247 * Update config.h * Fix #3293 * Disable UBSAN in zig builds. (#3292) Zig debug builds automatically enable ubsan. As the fix for #1891 had to be reverted, debug builds using zig will crash like so: ``` Illegal instruction at address 0x3237d2 raylib/src/rlgl.h:3690:91: 0x3237d2 in rlDrawVertexArrayElements (/home/rcorre/src/raylib-zig-template/raylib/src/rcore.c) glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset); ``` This disables UBSAN when using zig to build raylib. * Update README.md (#3290) specially -> especially * Update cmake SUPPORT_FILEFORMAT_SVG default value (#3291) * Mouse offset and scaling must be considered also on web! * Update rcore.c * Update Makefile : clean raygui.c & physac.c (#3296) * Remove PLATFORM_RPI (#3232) * Remove PLATFORM_RPI * remove build artifacts --------- Co-authored-by: MichaelFiber <michael@cubeofb.org> Co-authored-by: Ray <raysan5@gmail.com> * Review to avoid UBSAN complaining #1891 * added raylib-raku to bindings (#3299) * examples: core: adds 2D camera two player split screen (#3298) * Reviewed examples for consistency * Update rtext.c * Some code restructuring for input functions, consistency review * Remove unneeded #if (#3301) Co-authored-by: MichaelFiber <michael@cubeofb.org> * Revert "Disable UBSAN in zig builds. (#3292)" (#3303) This reverts commit a316f9e. Issue #1891 was fixed again, so this is no longer needed. * rtextures: Fix ImageDraw() source clipping when drawing beyond top left (#3306) * REVIEWED: `TextToPascal()` issue when first char is uppercase * Implement FLAG_WINDOW_RESIZABLE for web (#3305) Fixes #3231 * Update BINDINGS.md (#3307) Fix Kaylib binding. Reroute to a new repository. Binding renamed. * Update webassembly.yml * Add claw-raylib to BINDINGS.md (#3310) * Add SetWindowMaxSize for desktop and web (#3309) * Add SetWindowMaxSize for desktop and web * Remove SizeInt and respective adjustments * Update rtextures.c * Reviewed parameters for consistency * Rename windowM* to screenM* (#3312) * Update BINDINGS.md (#3317) Update TurboRaylib bindings * Update rmodels.c * Update BINDINGS.md with vaiorabbit/raylib-bindings (#3318) * fixed spelling mistake * put back parenthesis * reverted major allignment changes * reverted parser output changes * reverted one more indentation change --------- Co-authored-by: Brian-E <brian@intra.fo> Co-authored-by: Ray <raysan5@gmail.com> Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com> Co-authored-by: ashn <60763262+ashn-dot-dev@users.noreply.github.com> Co-authored-by: actondev (Christos) <chris.actondev@gmail.com> Co-authored-by: vitopigno <103512727+VitusVeit@users.noreply.github.com> Co-authored-by: Asdqwe <asdqwe@asdqwe.com> Co-authored-by: Jeffery Myers <jeffm2501@gmail.com> Co-authored-by: Ethan Simpson <ethansimpson@xtra.co.nz> Co-authored-by: Nickolas McDonald <43690021+n77y@users.noreply.github.com> Co-authored-by: Branimir Ričko <rickobranimir@gmail.com> Co-authored-by: iacore <74560659+iacore@users.noreply.github.com> Co-authored-by: Ethan Conneely <Econn50@outlook.com> Co-authored-by: Johannes Barthelmes <615914+jbarthelmes@users.noreply.github.com> Co-authored-by: bXi <bluepunk@gmail.com> Co-authored-by: Ryan Roden-Corrent <ryan@rcorre.net> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: SuperUserNameMan <yoann@terminajones.com> Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com> Co-authored-by: MichaelFiber <michael@cubeofb.org> Co-authored-by: Dan Vu <danvu.hustle@gmail.com> Co-authored-by: Gabriel dos Santos Sanches <gabrielssanches@gmail.com> Co-authored-by: Rob Loach <robloach@gmail.com> Co-authored-by: Peter0x44 <peter0x44@disroot.org> Co-authored-by: Kenta <106167071+Its-Kenta@users.noreply.github.com> Co-authored-by: bohonghuang <1281299809@qq.com> Co-authored-by: turborium <45082001+turborium@users.noreply.github.com> Co-authored-by: Wilson Silva <wilson.dsigns@gmail.com>
* Prettified a comment * fixed broken indentation caused by another commit. the commit renamed a bool to int and broke indentation: 233cf39 * Changed 0.001 and 0.00001 to EPSILON This commit is untested. I don't know what consequences this has. Since the commits that added these numbers were before epsilon was added, I have assumed that epsilon could replace them. * Prettied up indentation in a few places * removed spacing around *, standardizing it. * I may have gotten overboard with indentation * removed a few useless parenthesis * Added fortran-raylib * Fix examples/others/rlgl_standalone.c compilation issue (raysan5#3242) * Update BINDINGS.md * Ignore unused return value of GetCodepointNext in GetCodepointCount (raysan5#3241) * Ignore unused return value of GetCodepointNext in GetCodepointCount Removes the last warning from non-external libraries when compiling with the default build configuration on x64 Linux. * Remove unnecessary void cast in GetCodepointCount * Fix raysan5#3246 * Revert "Fix raysan5#3246" This reverts commit e4dcbd5. * Fix text_unicode.c example crashing (raysan5#3250) * Fix text_unicode.c example crashing * Adjust the text_unicode.c example crashing fix * tweaks * add build.zig options for individual modules (raysan5#3254) * Add `IsKeyPressedRepeat` (desktop only) (raysan5#3245) Since the key pressed are handle by comparing current vs previous state (ie frame), a special way is needed to handle key repeats. * Reviewed `IsKeyPressedRepeat()` raysan5#3248 * Update rcore.c (raysan5#3255) * Match CMakeOptions.txt options default values (raysan5#3258) * Fix SetClipboardText for web (raysan5#3257) * [Image] Validate that ImageDrawRectangleRec is drawing entirely inside the image (raysan5#3264) * Add a function to clone a sound and share data with another sound. * rename items based on feedback * PR Feedback, use custom unload for sound alias, not variant of normal sound unloading * sound_multi example * Validate that image rect drawing is inside the image so we don't overflow a buffer * remove files that should not have been added. * remove changes that should not have been * revert * adsfasdfsdfsdf * Add Vector3 Projecting and Rejection to Raymath (raysan5#3263) * Update raymath.h * formatting * [Feature] IsKey... safety checks and more (raysan5#3256) * [Feature] Add GetKeyRepeat * Update rcore.c * Simpler design, only one repeat per frame * Update config.h * Update rcore.c * Add KEYBOARD_KEYS_MASK * Update config.h * reversions * Update rcore.c * Update rcore.c * change docs * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update raylib.h * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Fix bug where default shaders was not linking. (raysan5#3261) * Formating review * Add missing cmake options (raysan5#3267) * Fix CMake extraneous -lglfw (raysan5#3266) Closes raysan5#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. * Fix example/models/models_loading_gltf.c controls (raysan5#3268) * Fix example/models/models_loading_m3d.c controls (raysan5#3269) * Remove e from secondes (raysan5#3270) * Fix example/audio/audio_module_player.c help instructions and small bug (raysan5#3272) * Fix example/audio/audio_module_player.c help instructions and small bug * Update example/audio/audio_module_player.png screenshot * Use type name instead of valid specifier long long --> long long int * REVIEWED: `GetFileLength()`, added comment raysan5#3262 * Update examples/models/models_loading_gltf.png;m3d.png screenshots (raysan5#3273) * Remove a duplicated screenshot and add missing one (raysan5#3275) * Add examples/shaders/shaders_lightmap.c to Makefiles (raysan5#3276) * Fix examples/others/easings_testbed.c help instructions and small tweak (raysan5#3277) * Fix examples/shaders/shaders_texture_outline.c help instructions (raysan5#3278) * Fix examples/shapes/shapes_collision_area.c help instructions (raysan5#3279) * RENAMED: LoadFont*() parameter names for consistency and coherence * Fix uninitialized thread-locals in stbi raysan5#3282 (raysan5#3283) * REVIEWED: Added `SetTextLineSpacing()` to multiline examples * REVIEWED: Data size type consistency between functions raysan5#3168 * Some tweaks * Use internal default allocators, instead of user-exposed ones * Added rudimentary SVG support. (raysan5#2738) * Added rudimentary SVG support. Added 2 functions ImageLoadSvg and ImageLoadSvgWithSize. * Added an example on how to use ImageLoadSvgWithSize and adjusted Makefiles accordingly. * Added actual correct example file. * Reviewed the code to keep the raylib coding conventions in mind. Moved the LoadImageSvg() code into LoadImage() guarded by SUPPORT_FILEFORMAT_SVG. Renamed LoadImageSvgWithSize() to LoadImageSvg(). Added a LoadImageSvgFromString() function to parse the loaded SVG into an actual image. This does the bulk of the work. * Fixed typo. --------- Co-authored-by: Ray <raysan5@gmail.com> * REVIEWED: `LoadImageSvg()` * REVIEWED: `LoadImageSvg()` * Add SUPPORT_FILEFORMAT_SVG to cmake (raysan5#3284) * Fix examples/textures/textures_fog_of_war.c help instructions (raysan5#3285) * Fix examples/textures/textures_image_rotate.c help instructions (raysan5#3286) * Update rtextures.c * Fix raysan5#3247 * Update config.h * Fix raysan5#3293 * Disable UBSAN in zig builds. (raysan5#3292) Zig debug builds automatically enable ubsan. As the fix for raysan5#1891 had to be reverted, debug builds using zig will crash like so: ``` Illegal instruction at address 0x3237d2 raylib/src/rlgl.h:3690:91: 0x3237d2 in rlDrawVertexArrayElements (/home/rcorre/src/raylib-zig-template/raylib/src/rcore.c) glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset); ``` This disables UBSAN when using zig to build raylib. * Update README.md (raysan5#3290) specially -> especially * Update cmake SUPPORT_FILEFORMAT_SVG default value (raysan5#3291) * Mouse offset and scaling must be considered also on web! * Update rcore.c * Update Makefile : clean raygui.c & physac.c (raysan5#3296) * Remove PLATFORM_RPI (raysan5#3232) * Remove PLATFORM_RPI * remove build artifacts --------- Co-authored-by: MichaelFiber <michael@cubeofb.org> Co-authored-by: Ray <raysan5@gmail.com> * Review to avoid UBSAN complaining raysan5#1891 * added raylib-raku to bindings (raysan5#3299) * examples: core: adds 2D camera two player split screen (raysan5#3298) * Reviewed examples for consistency * Update rtext.c * Some code restructuring for input functions, consistency review * Remove unneeded #if (raysan5#3301) Co-authored-by: MichaelFiber <michael@cubeofb.org> * Revert "Disable UBSAN in zig builds. (raysan5#3292)" (raysan5#3303) This reverts commit a316f9e. Issue raysan5#1891 was fixed again, so this is no longer needed. * rtextures: Fix ImageDraw() source clipping when drawing beyond top left (raysan5#3306) * REVIEWED: `TextToPascal()` issue when first char is uppercase * Implement FLAG_WINDOW_RESIZABLE for web (raysan5#3305) Fixes raysan5#3231 * Update BINDINGS.md (raysan5#3307) Fix Kaylib binding. Reroute to a new repository. Binding renamed. * Update webassembly.yml * Add claw-raylib to BINDINGS.md (raysan5#3310) * Add SetWindowMaxSize for desktop and web (raysan5#3309) * Add SetWindowMaxSize for desktop and web * Remove SizeInt and respective adjustments * Update rtextures.c * Reviewed parameters for consistency * Rename windowM* to screenM* (raysan5#3312) * Update BINDINGS.md (raysan5#3317) Update TurboRaylib bindings * Update rmodels.c * Update BINDINGS.md with vaiorabbit/raylib-bindings (raysan5#3318) * fixed spelling mistake * put back parenthesis * reverted major allignment changes * reverted parser output changes * reverted one more indentation change --------- Co-authored-by: Brian-E <brian@intra.fo> Co-authored-by: Ray <raysan5@gmail.com> Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com> Co-authored-by: ashn <60763262+ashn-dot-dev@users.noreply.github.com> Co-authored-by: actondev (Christos) <chris.actondev@gmail.com> Co-authored-by: vitopigno <103512727+VitusVeit@users.noreply.github.com> Co-authored-by: Asdqwe <asdqwe@asdqwe.com> Co-authored-by: Jeffery Myers <jeffm2501@gmail.com> Co-authored-by: Ethan Simpson <ethansimpson@xtra.co.nz> Co-authored-by: Nickolas McDonald <43690021+n77y@users.noreply.github.com> Co-authored-by: Branimir Ričko <rickobranimir@gmail.com> Co-authored-by: iacore <74560659+iacore@users.noreply.github.com> Co-authored-by: Ethan Conneely <Econn50@outlook.com> Co-authored-by: Johannes Barthelmes <615914+jbarthelmes@users.noreply.github.com> Co-authored-by: bXi <bluepunk@gmail.com> Co-authored-by: Ryan Roden-Corrent <ryan@rcorre.net> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: SuperUserNameMan <yoann@terminajones.com> Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com> Co-authored-by: MichaelFiber <michael@cubeofb.org> Co-authored-by: Dan Vu <danvu.hustle@gmail.com> Co-authored-by: Gabriel dos Santos Sanches <gabrielssanches@gmail.com> Co-authored-by: Rob Loach <robloach@gmail.com> Co-authored-by: Peter0x44 <peter0x44@disroot.org> Co-authored-by: Kenta <106167071+Its-Kenta@users.noreply.github.com> Co-authored-by: bohonghuang <1281299809@qq.com> Co-authored-by: turborium <45082001+turborium@users.noreply.github.com> Co-authored-by: Wilson Silva <wilson.dsigns@gmail.com>
Hello,
Some options default values on CMakeOptions.txt do not match their default counterparts on config.h as illustrated on the table below:
SUPPORT_SSH_KEYBOARD_RPI
SUPPORT_WINMM_HIGHRES_TIMER
SUPPORT_FILEFORMAT_PNM
SUPPORT_FILEFORMAT_KTX
SUPPORT_FILEFORMAT_ASTC
SUPPORT_FILEFORMAT_GIF
SUPPORT_FILEFORMAT_QOI
Assuming that a) compiling with
make
orcmake
should have equivalence, and b) the default values on config.h are the correct ones, this pull request flips them on CMakeOptions.txt to match those on config.h.I apologize in advance if that is not the case and there are underlying reasons for the divergence.
Best regards.