summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorAhmad Fatoum <[email protected]>2018-07-29 12:56:19 +0200
committerGitHub <[email protected]>2018-07-29 12:56:19 +0200
commit6905a875eda7e1ac85b768f5aa4e07dc92537bdb (patch)
treef8bf880840312d42478043a04bc7f273f892b180 /examples
parentcf021e38117723b655a2399e62f8d5f87ce3d413 (diff)
parent5a94a280d0a7d2866a12e6f9144401881e17de02 (diff)
downloadraylib-6905a875eda7e1ac85b768f5aa4e07dc92537bdb.tar.gz
raylib-6905a875eda7e1ac85b768f5aa4e07dc92537bdb.zip
Merge pull request #608 from a3f/master
CMake: Major cleanup to support find_package(raylib)
Diffstat (limited to 'examples')
-rw-r--r--examples/CMakeLists.txt37
1 files changed, 24 insertions, 13 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index a214c171..90a1e902 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,15 +1,6 @@
# Setup the project and settings
project(examples)
-include("../cmake/utils.cmake")
-
-# Make sure raylib has been built
-# 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 shaders shapes text textures)
set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=199309L)
@@ -34,12 +25,12 @@ foreach(example_dir ${example_dirs})
endforeach()
include(CheckIncludeFiles)
-list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)
-list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) # see #588
set(OUTPUT_EXT)
+list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
if(${PLATFORM} MATCHES "Android")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
+ list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_picking.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_vr_simulator.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_free.c)
@@ -58,12 +49,19 @@ if(${PLATFORM} MATCHES "Android")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_custom_uniform.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_model_shader.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_postprocessing.c)
+
elseif(${PLATFORM} MATCHES "Web")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --shell-file ${CMAKE_SOURCE_DIR}/templates/web_shell/shell.html")
set(OUTPUT_EXT ".html")
+
endif()
+include_directories(BEFORE SYSTEM others/external/include)
+
+if (NOT TARGET raylib)
+ find_package(raylib 2.0 REQUIRED)
+endif()
# Do each example
foreach(example_source ${example_sources})
@@ -74,9 +72,22 @@ foreach(example_source ${example_sources})
# Setup the example
add_executable(${example_name} ${example_source})
- # Link the libraries
- link_libraries_to_executable(${example_name})
+ target_link_libraries(${example_name} raylib)
endforeach()
+if (${PLATFORM} MATCHES "Desktop")
+ # rlgl_standalone can't be linked with raylib because of duplicate rlgl symbols
+ foreach (example_source "others/rlgl_standalone.c")
+ # Create the basename for the example
+ get_filename_component(example_name ${example_source} NAME)
+ string(REPLACE ".c" "${OUTPUT_EXT}" example_name ${example_name})
+ add_executable(${example_name} ${example_source})
+ add_dependencies(${example_name} raylib)
+ target_link_libraries(${example_name} ${raylib_LDFLAGS})
+ target_include_directories(${example_name} PRIVATE ${raylib_INCLUDE_DIRS})
+
+ endforeach()
+endif()
+
# Copy all of the resource files to the destination
file(COPY ${example_resources} DESTINATION "resources/")