Selaa lähdekoodia

Merge pull request #789 from myd7349/fix-cmake-for-win32

Fix CMake support on Win32
Ray 6 vuotta sitten
vanhempi
commit
e41cb774c2
3 muutettua tiedostoa jossa 24 lisäystä ja 8 poistoa
  1. 1 1
      CMakeLists.txt
  2. 13 6
      cmake/raylib-config.cmake
  3. 10 1
      src/CMakeLists.txt

+ 1 - 1
CMakeLists.txt

@@ -41,7 +41,7 @@ if (ENABLE_MSAN AND ENABLE_ASAN)
     MESSAGE(WARNING "Compiling with both AddressSanitizer and MemorySanitizer is not recommended")
 endif()
 
-add_subdirectory(src release)
+add_subdirectory(src)
 
 if (${BUILD_EXAMPLES})
   add_subdirectory(examples)

+ 13 - 6
cmake/raylib-config.cmake

@@ -16,8 +16,8 @@ if (raylib_USE_STATIC_LIBS)
     set(XPREFIX ${XPREFIX}_STATIC)
 endif()
 
-find_package(PkgConfig)
-pkg_check_modules(${XPREFIX} REQUIRED raylib)
+find_package(PkgConfig QUIET)
+pkg_check_modules(${XPREFIX} QUIET raylib)
 set(raylib_DEFINITIONS ${${XPREFIX}_CFLAGS})
 
 find_path(raylib_INCLUDE_DIR
@@ -25,10 +25,17 @@ find_path(raylib_INCLUDE_DIR
     HINTS ${${XPREFIX}_INCLUDE_DIRS}
 )
 
-find_library(raylib_LIBRARY
-    NAMES raylib
-    HINTS ${${XPREFIX}_LIBRARY_DIRS}
-)
+if (raylib_USE_STATIC_LIBS)
+    find_library(raylib_LIBRARY
+        NAMES raylib_static
+        HINTS ${${XPREFIX}_LIBRARY_DIRS}
+    )
+else ()
+    find_library(raylib_LIBRARY
+        NAMES raylib
+        HINTS ${${XPREFIX}_LIBRARY_DIRS}
+    )
+endif ()
 
 set(raylib_LIBRARIES    ${raylib_LIBRARY})
 set(raylib_LIBRARY_DIRS ${${XPREFIX}_LIBRARY_DIRS})

+ 10 - 1
src/CMakeLists.txt

@@ -188,6 +188,13 @@ if(SHARED)
       PUBLIC ${GRAPHICS}
   )
 
+  if(MSVC)
+    target_compile_definitions(raylib
+      PRIVATE $<BUILD_INTERFACE:BUILD_LIBTYPE_SHARED>
+      INTERFACE $<INSTALL_INTERFACE:USE_LIBTYPE_SHARED>
+    )
+  endif()
+
   set(PKG_CONFIG_LIBS_EXTRA "")
 
   set_property(TARGET raylib PROPERTY POSITION_INDEPENDENT_CODE ON)
@@ -214,7 +221,9 @@ if(SHARED)
   if (WIN32)
     install(
       TARGETS raylib
-      RUNTIME DESTINATION "lib"
+      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+      LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+      RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
       PUBLIC_HEADER DESTINATION "include"
     )
   else()