diff options
Diffstat (limited to 'src')
| -rwxr-xr-x[-rw-r--r--] | src/CMakeLists.txt | 40 | ||||
| -rw-r--r-- | src/external/glfw/src/CMakeLists.txt | 16 |
2 files changed, 35 insertions, 21 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e3411ee..675e060c 100644..100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,17 +10,37 @@ include("CMakeOptions.txt") configure_file(config.h.in ${CMAKE_BINARY_DIR}/cmake/config.h) include_directories(${CMAKE_BINARY_DIR}) -include("../utils.cmake") +if(MACOS_FATLIB) + if (CMAKE_OSX_ARCHITECTURES) + message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON") + else() + SET(CMAKE_OSX_ARCHITECTURES "x86_64;i386") + endif() +endif() # Get the sources together file(GLOB raylib_sources *.c) +list(REMOVE_ITEM raylib_sources ${CMAKE_CURRENT_SOURCE_DIR}/rglfw.c) + +if(NOT glfw3_FOUND) + set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) + set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) + set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + 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 (USE_PIC OR SHARED) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + endif() -if(glfw3_FOUND) - list(REMOVE_ITEM raylib_sources ${CMAKE_CURRENT_SOURCE_DIR}/rglfw.c) -else() + add_subdirectory(external/glfw) include_directories(external/glfw/include) + + list(APPEND raylib_sources $<TARGET_OBJECTS:glfw_objlib>) endif() +include("../utils.cmake") + if(USE_AUDIO) file(GLOB stb_vorbis external/stb_vorbis.c) file(GLOB mini_al external/mini_al.c ${stb_vorbis}) @@ -51,7 +71,6 @@ if(${PLATFORM} MATCHES "Desktop") # See: https://github.com/raysan5/raylib/issues/341 if(APPLE) set(GRAPHICS "GRAPHICS_API_OPENGL_33") - set_source_files_properties(rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c") link_libraries("${LIBS_PRIVATE}") elseif(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS) @@ -76,14 +95,6 @@ elseif(${PLATFORM} MATCHES "Raspberry Pi") set(GRAPHICS "GRAPHICS_API_OPENGL_ES2") endif() -if(MACOS_FATLIB) - if (CMAKE_OSX_ARCHITECTURES) - message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON") - else() - SET(CMAKE_OSX_ARCHITECTURES "x86_64;i386") - endif() -endif() - # Which platform? if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") @@ -100,7 +111,7 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_MACOSX_RPATH ON) - target_link_libraries(${RAYLIB}_shared ${LIBS_PRIVATE}) + target_link_libraries(${RAYLIB}_shared ${LIBS_PRIVATE} glfw ${GLFW_LIBRARIES}) if (UNIX AND ${FILESYSTEM_LACKS_SYMLINKS}) MESSAGE(WARNING "Can't version UNIX shared library on file system without symlink support") else() @@ -137,6 +148,7 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") ) set(PKG_CONFIG_LIBS_PRIVATE ${__PKG_CONFIG_LIBS_PRIVATE}) + target_link_libraries(${RAYLIB} glfw ${GLFW_LIBRARIES}) if (WITH_PIC) set_property(TARGET ${RAYLIB} PROPERTY POSITION_INDEPENDENT_CODE ON) diff --git a/src/external/glfw/src/CMakeLists.txt b/src/external/glfw/src/CMakeLists.txt index 22ce68f1..6d3e33a5 100644 --- a/src/external/glfw/src/CMakeLists.txt +++ b/src/external/glfw/src/CMakeLists.txt @@ -92,7 +92,9 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL GNU OR ${CMAKE_C_COMPILER_ID} STREQUAL Clang COMPILE_FLAGS -Wdeclaration-after-statement) endif() -add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS}) +add_library(glfw_objlib OBJECT ${glfw_SOURCES} ${glfw_HEADERS}) +add_library(glfw $<TARGET_OBJECTS:glfw_objlib>) + set_target_properties(glfw PROPERTIES OUTPUT_NAME ${GLFW_LIB_NAME} VERSION ${GLFW_VERSION} @@ -100,11 +102,11 @@ set_target_properties(glfw PROPERTIES POSITION_INDEPENDENT_CODE ON FOLDER "GLFW3") -target_compile_definitions(glfw PRIVATE _GLFW_USE_CONFIG_H) -target_include_directories(glfw PUBLIC +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 PRIVATE +target_include_directories(glfw_objlib PRIVATE "${GLFW_SOURCE_DIR}/src" "${GLFW_BINARY_DIR}/src" ${glfw_INCLUDE_DIRS}) @@ -113,11 +115,11 @@ target_include_directories(glfw PRIVATE # the inclusion of stddef.h (by glfw3.h), which is itself included before # win32_platform.h. We define them here until a saner solution can be found # NOTE: MinGW-w64 and Visual C++ do /not/ need this hack. -target_compile_definitions(glfw PRIVATE +target_compile_definitions(glfw_objlib PRIVATE "$<$<BOOL:${MINGW}>:UNICODE;WINVER=0x0501>") # Enable a reasonable set of warnings (no, -Wextra is not reasonable) -target_compile_options(glfw PRIVATE +target_compile_options(glfw_objlib PRIVATE "$<$<C_COMPILER_ID:Clang>:-Wall>" "$<$<C_COMPILER_ID:GNU>:-Wall>") @@ -135,7 +137,7 @@ if (BUILD_SHARED_LIBS) endif() elseif (APPLE) # Add -fno-common to work around a bug in Apple's GCC - target_compile_options(glfw PRIVATE "-fno-common") + target_compile_options(glfw_objlib PRIVATE "-fno-common") set_target_properties(glfw PROPERTIES INSTALL_NAME_DIR "lib${LIB_SUFFIX}") |
