diff options
| author | Ahmad Fatoum <[email protected]> | 2017-11-25 20:27:53 +0100 |
|---|---|---|
| committer | Ahmad Fatoum <[email protected]> | 2017-11-25 21:45:31 +0100 |
| commit | f991a075e18df5e58bd6f6f90c1b02b5b353cbe3 (patch) | |
| tree | 051e2194584b063f9af06d8551b2e96d323b1528 | |
| parent | 853cc6f4c96f4de94a11aa8317e98fd0e42c64fd (diff) | |
| download | raylib-f991a075e18df5e58bd6f6f90c1b02b5b353cbe3.tar.gz raylib-f991a075e18df5e58bd6f6f90c1b02b5b353cbe3.zip | |
Build examples and games on Travis CI
They were disabled because they failed to build,
but this patch set fixes the build on Linux and macOS.
This doesn't apply to the AppVeyor build on Windows yet;
it currently fails at linking with OpenAL.
| -rw-r--r-- | .gitignore | 5 | ||||
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | examples/CMakeLists.txt | 21 | ||||
| -rw-r--r-- | examples/others/audio_standalone.c | 7 | ||||
| -rw-r--r-- | games/wave_collector/wave_collector.c | 4 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | utils.cmake | 12 |
7 files changed, 39 insertions, 14 deletions
@@ -132,3 +132,8 @@ build # Ignore Android generated files and folders templates/android_project/output + +# Ignore GNU global tags +GPATH +GRTAGS +GTAGS diff --git a/.travis.yml b/.travis.yml index af381d5b..ea51039e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ before_install: script: - mkdir build - cd build - - cmake -DMACOS_FATLIB=ON -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=$SHARED -DBUILD_EXAMPLES=OFF -DBUILD_GAMES=OFF .. + - cmake -DMACOS_FATLIB=ON -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=$SHARED .. - make - make package diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 354a1373..96ce37e0 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -7,9 +7,20 @@ include("../utils.cmake") # TODO `build` directory should maybe be something else... # TODO place somewhere else? include_directories("../build/release") +include_directories("../src/external") +include_directories("../src/external/glfw/include") # Get the sources together -set(example_dirs audio core models others physac shaders text texutures) +set(example_dirs audio core models others shaders text texutures) +set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=199309L) + include(CheckSymbolExists) + check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_CLOCK_MONOTONIC) + check_symbol_exists(QueryPerformanceCounter windows.h HAVE_QPC) +set(CMAKE_REQUIRED_DEFINITIONS) +if(HAVE_QPC OR HAVE_CLOCK_MONOTONIC) + set(example_dirs ${example_dirs} physac) +endif() + set(example_sources) set(example_resources) foreach(example_dir ${example_dirs}) @@ -22,6 +33,14 @@ foreach(example_dir ${example_dirs}) list(APPEND example_resources ${resources}) endforeach() +include(CheckIncludeFiles) +check_include_files(OVR_CAPI_GL.h HAVE_OCULUS_CAPI) +if(NOT HAVE_OCULUS_CAPI) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/oculus_rift.c) +endif() +list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c) + + # Do each example foreach(example_source ${example_sources}) # Create the basename for the example diff --git a/examples/others/audio_standalone.c b/examples/others/audio_standalone.c index 0a09c988..97c3fd0d 100644 --- a/examples/others/audio_standalone.c +++ b/examples/others/audio_standalone.c @@ -26,14 +26,11 @@ ********************************************************************************************/ #include <stdio.h> +#include "audio.h" #if defined(_WIN32) #include <conio.h> // Windows only, no stardard library -#endif - -#include "audio.h" - -#if defined(__linux__) +#else #include <stdio.h> #include <termios.h> #include <unistd.h> diff --git a/games/wave_collector/wave_collector.c b/games/wave_collector/wave_collector.c index d4ce33d9..e28c0b84 100644 --- a/games/wave_collector/wave_collector.c +++ b/games/wave_collector/wave_collector.c @@ -63,7 +63,7 @@ static void UpdateDrawFrame(void); // Update and Draw one frame #if defined(PLATFORM_ANDROID) void android_main(struct android_app *app) #else -int main(void) +int main(int argc, char *argv[]) #endif { // Initialization @@ -315,4 +315,4 @@ static void UpdateDrawFrame(void) EndDrawing(); //---------------------------------------------------------------------------------- -}
\ No newline at end of file +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 47938030..47bee1ce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -51,7 +51,7 @@ if(${PLATFORM} MATCHES "Desktop") if(APPLE) set(GRAPHICS "GRAPHICS_API_OPENGL_33") set_source_files_properties(rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c") - link_libraries("-framework CoreFoundation -framework Cocoa -framework IOKit -framework CoreVideo") + link_libraries("${LIBS_PRIVATE}") elseif(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() diff --git a/utils.cmake b/utils.cmake index 54221b9c..84c73fe2 100644 --- a/utils.cmake +++ b/utils.cmake @@ -12,8 +12,12 @@ if(APPLE) find_library(OPENGL_LIBRARY OpenGL) find_library(OPENAL_LIBRARY OpenAL) find_library(COCOA_LIBRARY Cocoa) + find_library(IOKIT_LIBRARY IOKit) + find_library(COREFOUNDATION_LIBRARY CoreFoundation) + find_library(COREVIDEO_LIBRARY CoreVideo) - set(LIBS_PRIVATE ${OPENGL_LIBRARY} ${OPENAL_LIBRARY} ${COCOA_LIBRARY}) + set(LIBS_PRIVATE ${OPENGL_LIBRARY} ${OPENAL_LIBRARY} ${COCOA_LIBRARY} + ${IOKIT_LIBRARY} ${COREFOUNDATION_LIBRARY} ${COREVIDEO_LIBRARY}) elseif(LINUX) # Elsewhere (such as Linux), need `-lopenal -lGL`, etc... set(LIBS_PRIVATE @@ -27,10 +31,10 @@ endif() # Do the linking for executables that are meant to link raylib function(link_libraries_to_executable executable) - # Link the libraries - target_link_libraries(${executable} ${LIBS_PRIVATE}) - # And raylib target_link_libraries(${executable} raylib) + + # Link the libraries + target_link_libraries(${executable} ${LIBS_PRIVATE}) endfunction() |
