summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt12
-rw-r--r--src/core.c4
-rw-r--r--src/external/glfw/CMakeLists.txt6
-rw-r--r--src/external/glfw/src/CMakeLists.txt13
-rw-r--r--src/rglfw.c1
5 files changed, 20 insertions, 16 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2e561fc5..5581cc7a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -33,12 +33,8 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
set(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE)
set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE)
- if (WITH_PIC OR SHARED)
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
- endif()
add_subdirectory(external/glfw)
- include_directories(BEFORE SYSTEM external/glfw/include)
list(APPEND raylib_sources $<TARGET_OBJECTS:glfw_objlib>)
else()
@@ -179,7 +175,7 @@ if(STATIC)
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
-set_target_properties(raylib_static PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/release")
+set_target_properties(raylib_static PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")
add_test("pkg-config--static" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh --static)
endif(STATIC)
@@ -229,7 +225,7 @@ if(SHARED)
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
endif()
- set_target_properties(raylib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/release")
+ set_target_properties(raylib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")
add_test("pkg-config" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh)
else(SHARED)
@@ -240,9 +236,9 @@ if (NOT DEFINED PKG_CONFIG_LIBS_EXTRA)
set(PKG_CONFIG_LIBS_EXTRA "${PKG_CONFIG_LIBS_PRIVATE}")
endif()
configure_file(../raylib.pc.in raylib.pc @ONLY)
-install(FILES ${CMAKE_BINARY_DIR}/release/raylib.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
configure_file(../cmake/raylib-config-version.cmake raylib-config-version.cmake @ONLY)
-install(FILES ${CMAKE_BINARY_DIR}/release/raylib-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
install(FILES ${PROJECT_SOURCE_DIR}/../cmake/raylib-config.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
# populates raylib_{FOUND, INCLUDE_DIRS, LIBRARIES, LDFLAGS, DEFINITIONS}
diff --git a/src/core.c b/src/core.c
index aa76e88c..a1a1b1f9 100644
--- a/src/core.c
+++ b/src/core.c
@@ -1869,6 +1869,10 @@ static bool InitGraphicsDevice(int width, int height)
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
glfwSetErrorCallback(ErrorCallback);
+#if defined(__APPLE__)
+ glfwInitHint(GLFW_COCOA_CHDIR_RESOURCES, GLFW_FALSE);
+#endif
+
if (!glfwInit())
{
TraceLog(LOG_WARNING, "Failed to initialize GLFW");
diff --git a/src/external/glfw/CMakeLists.txt b/src/external/glfw/CMakeLists.txt
index 0eb7e7ea..83fe954e 100644
--- a/src/external/glfw/CMakeLists.txt
+++ b/src/external/glfw/CMakeLists.txt
@@ -327,10 +327,12 @@ endif()
# Export GLFW library dependencies
#--------------------------------------------------------------------
foreach(arg ${glfw_PKG_DEPS})
- set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} ${arg}" PARENT_SCOPE)
+ set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} ${arg}" CACHE INTERNAL
+ "GLFW pkg-config Requires.private")
endforeach()
foreach(arg ${glfw_PKG_LIBS})
- set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}" PARENT_SCOPE)
+ set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}" CACHE INTERNAL
+ "GLFW pkg-config Libs.private")
endforeach()
#--------------------------------------------------------------------
diff --git a/src/external/glfw/src/CMakeLists.txt b/src/external/glfw/src/CMakeLists.txt
index fe060844..76460769 100644
--- a/src/external/glfw/src/CMakeLists.txt
+++ b/src/external/glfw/src/CMakeLists.txt
@@ -94,18 +94,20 @@ endif()
add_library(glfw_objlib OBJECT ${glfw_SOURCES} ${glfw_HEADERS})
add_library(glfw $<TARGET_OBJECTS:glfw_objlib>)
-
+set_target_properties(glfw_objlib PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(glfw PROPERTIES
OUTPUT_NAME ${GLFW_LIB_NAME}
VERSION ${GLFW_VERSION}
SOVERSION ${GLFW_VERSION_MAJOR}
- POSITION_INDEPENDENT_CODE ON
FOLDER "GLFW3")
target_compile_definitions(glfw_objlib PRIVATE _GLFW_USE_CONFIG_H)
target_include_directories(glfw_objlib PUBLIC
"$<BUILD_INTERFACE:${GLFW_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>")
+target_include_directories(glfw PUBLIC
+ "$<BUILD_INTERFACE:${GLFW_SOURCE_DIR}/include>"
+ "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>")
target_include_directories(glfw_objlib PRIVATE
"${GLFW_SOURCE_DIR}/src"
"${GLFW_BINARY_DIR}/src"
@@ -143,17 +145,17 @@ if (BUILD_SHARED_LIBS)
INSTALL_NAME_DIR "lib${LIB_SUFFIX}")
elseif (UNIX)
# Hide symbols not explicitly tagged for export from the shared library
- target_compile_options(glfw PRIVATE "-fvisibility=hidden")
+ target_compile_options(glfw_objlib PRIVATE "-fvisibility=hidden")
endif()
- target_compile_definitions(glfw INTERFACE GLFW_DLL)
+ target_compile_definitions(glfw_objlib INTERFACE GLFW_DLL)
target_link_libraries(glfw PRIVATE ${glfw_LIBRARIES})
else()
target_link_libraries(glfw INTERFACE ${glfw_LIBRARIES})
endif()
if (MSVC)
- target_compile_definitions(glfw PRIVATE _CRT_SECURE_NO_WARNINGS)
+ target_compile_definitions(glfw_objlib PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
if (GLFW_INSTALL)
@@ -163,3 +165,4 @@ if (GLFW_INSTALL)
ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
LIBRARY DESTINATION "lib${LIB_SUFFIX}")
endif()
+
diff --git a/src/rglfw.c b/src/rglfw.c
index 50d606d4..154eb4ff 100644
--- a/src/rglfw.c
+++ b/src/rglfw.c
@@ -42,7 +42,6 @@
#endif
#if defined(__APPLE__)
#define _GLFW_COCOA
- #define _GLFW_USE_CHDIR // To chdir to the Resources subdirectory of the application bundle during glfwInit
#define _GLFW_USE_MENUBAR // To create and populate the menu bar when the first window is created
#define _GLFW_USE_RETINA // To have windows use the full resolution of Retina displays
#endif