浏览代码

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.
pull/400/head
Ahmad Fatoum 7 年前
父节点
当前提交
f991a075e1
共有 7 个文件被更改,包括 39 次插入14 次删除
  1. +5
    -0
      .gitignore
  2. +1
    -1
      .travis.yml
  3. +20
    -1
      examples/CMakeLists.txt
  4. +2
    -5
      examples/others/audio_standalone.c
  5. +2
    -2
      games/wave_collector/wave_collector.c
  6. +1
    -1
      src/CMakeLists.txt
  7. +8
    -4
      utils.cmake

+ 5
- 0
.gitignore 查看文件

@ -132,3 +132,8 @@ build
# Ignore Android generated files and folders
templates/android_project/output
# Ignore GNU global tags
GPATH
GRTAGS
GTAGS

+ 1
- 1
.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

+ 20
- 1
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

+ 2
- 5
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>

+ 2
- 2
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();
//----------------------------------------------------------------------------------
}
}

+ 1
- 1
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()

+ 8
- 4
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()

正在加载...
取消
保存