summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CMakeOptions.txt3
-rw-r--r--cmake/BuildOptions.cmake21
-rw-r--r--cmake/GlfwImport.cmake7
-rw-r--r--cmake/InstallConfigurations.cmake4
-rw-r--r--src/CMakeLists.txt20
5 files changed, 16 insertions, 39 deletions
diff --git a/CMakeOptions.txt b/CMakeOptions.txt
index f39d17a1..7ab43de2 100644
--- a/CMakeOptions.txt
+++ b/CMakeOptions.txt
@@ -14,8 +14,7 @@ option(ENABLE_MSAN "Enable MemorySanitizer (MSan) for debugging (not recommended
# Shared library is always PIC. Static library should be PIC too if linked into a shared library
option(WITH_PIC "Compile static library as position-independent code" OFF)
-option(SHARED "Build raylib as a dynamic library" OFF)
-option(STATIC "Build raylib as a static library" ON)
+option(BUILD_SHARED_LIBS "Build raylib as a shared library" OFF)
option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF)
option(USE_AUDIO "Build raylib with audio module" ON)
diff --git a/cmake/BuildOptions.cmake b/cmake/BuildOptions.cmake
index 00586c23..0fce6429 100644
--- a/cmake/BuildOptions.cmake
+++ b/cmake/BuildOptions.cmake
@@ -1,24 +1,3 @@
-if(NOT (STATIC OR SHARED))
- message(FATAL_ERROR "Nothing to do if both -DSHARED=OFF and -DSTATIC=OFF...")
-endif()
-
-if (DEFINED BUILD_SHARED_LIBS)
- set(SHARED ${BUILD_SHARED_LIBS})
- if (${BUILD_SHARED_LIBS})
- set(STATIC OFF)
- else()
- set(STATIC ON)
- endif()
-endif()
-if(DEFINED SHARED_RAYLIB)
- set(SHARED ${SHARED_RAYLIB})
- message(DEPRECATION "-DSHARED_RAYLIB is deprecated. Please use -DSHARED instead.")
-endif()
-if(DEFINED STATIC_RAYLIB)
- set(STATIC ${STATIC_RAYLIB})
- message(DEPRECATION "-DSTATIC_RAYLIB is deprecated. Please use -DSTATIC instead.")
-endif()
-
if(${PLATFORM} MATCHES "Desktop" AND APPLE)
if(MACOS_FATLIB)
if (CMAKE_OSX_ARCHITECTURES)
diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake
index 12dbfeb9..5692e44f 100644
--- a/cmake/GlfwImport.cmake
+++ b/cmake/GlfwImport.cmake
@@ -16,10 +16,15 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT
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)
+ set(WAS_SHARED ${BUILD_SHARED_LIBS})
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE)
+
add_subdirectory(external/glfw)
+
+ set(BUILD_SHARED_LIBS WAS_SHARED CACHE BOOL " " FORCE)
+ unset(WAS_SHARED)
list(APPEND raylib_sources $<TARGET_OBJECTS:glfw_objlib>)
include_directories(BEFORE SYSTEM external/glfw/include)
diff --git a/cmake/InstallConfigurations.cmake b/cmake/InstallConfigurations.cmake
index a26fedf5..6a89ad55 100644
--- a/cmake/InstallConfigurations.cmake
+++ b/cmake/InstallConfigurations.cmake
@@ -7,12 +7,12 @@ install(
)
# PKG_CONFIG_LIBS_PRIVATE is used in raylib.pc.in
-if (STATIC)
+if (NOT BUILD_SHARED_LIBS)
include(LibraryPathToLinkerFlags)
library_path_to_linker_flags(__PKG_CONFIG_LIBS_PRIVATE "${LIBS_PRIVATE}")
set(PKG_CONFIG_LIBS_PRIVATE ${__PKG_CONFIG_LIBS_PRIVATE} ${GLFW_PKG_LIBS})
string(REPLACE ";" " " PKG_CONFIG_LIBS_PRIVATE "${PKG_CONFIG_LIBS_PRIVATE}")
-elseif (SHARED)
+elseif (BUILD_SHARED_LIBS)
set(PKG_CONFIG_LIBS_EXTRA "")
endif ()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3319ef03..f6416dfe 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -51,29 +51,23 @@ include(LibraryConfigurations)
set(LIBS_PRIVATE ${LIBS_PRIVATE} ${OPENAL_LIBRARY})
-if (STATIC)
+add_library(raylib ${raylib_sources} ${raylib_public_headers})
+
+if (NOT BUILD_SHARED_LIBS)
MESSAGE(STATUS "Building raylib static library")
-
- add_library(raylib STATIC ${raylib_sources} ${raylib_public_headers})
add_library(raylib_static ALIAS raylib)
-
add_test("pkg-config--static" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh --static)
-endif (STATIC)
-
-
-if (SHARED)
+else()
MESSAGE(STATUS "Building raylib shared library")
- add_library(raylib SHARED ${raylib_sources} ${raylib_public_headers})
-
if (MSVC)
target_compile_definitions(raylib
PRIVATE $<BUILD_INTERFACE:BUILD_LIBTYPE_SHARED>
INTERFACE $<INSTALL_INTERFACE:USE_LIBTYPE_SHARED>
)
endif ()
-
+
add_test("pkg-config" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh)
-endif ()
+endif()
# Setting target properties
set_target_properties(raylib PROPERTIES
@@ -82,7 +76,7 @@ set_target_properties(raylib PROPERTIES
SOVERSION ${API_VERSION}
)
-if (WITH_PIC OR SHARED)
+if (WITH_PIC OR BUILD_SHARED_LIBS)
set_property(TARGET raylib PROPERTY POSITION_INDEPENDENT_CODE ON)
endif ()