summaryrefslogtreecommitdiffstats
path: root/deps/CMakeLists.txt
blob: f688ffd4343baf9339f1fb8ff6b9e3dc3dddca0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
set(DEPS_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/include")
set(DEPS_LIBRARY_DIR "${CMAKE_CURRENT_LIST_DIR}/lib")

if(WIN32 AND NOT MINGW)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/win")
elseif(WIN32 AND MINGW)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/mingw")
elseif(UNIX AND NOT APPLE)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/linux")
elseif(UNIX AND APPLE)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/apple")
else()
    message(FATAL_ERROR "Unsupported target platform")
endif()

if(CMAKE_SIZEOF_VOID_P EQUAL 4)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}32")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}64")
else()
    message(FATAL_ERROR "Unsupported CMAKE_SIZEOF_VOID_P")
endif()

function(import_shared_library library)
    add_library(${library} SHARED IMPORTED GLOBAL)
    set_target_properties(${library} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${DEPS_INCLUDE_DIR}")
    set_target_properties(${library} PROPERTIES IMPORTED_LOCATION "${DEPS_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${library}${CMAKE_SHARED_LIBRARY_SUFFIX}")
    set_target_properties(${library} PROPERTIES IMPORTED_IMPLIB "${DEPS_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${library}${CMAKE_STATIC_LIBRARY_SUFFIX}")
    install(FILES "${DEPS_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${library}${CMAKE_SHARED_LIBRARY_SUFFIX}" RUNTIME DESTINATION ".")
endfunction()

function(import_static_library library)
    add_library(${library} STATIC IMPORTED GLOBAL)
    set_target_properties(${library} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${DEPS_INCLUDE_DIR}")
    set_target_properties(${library} PROPERTIES IMPORTED_LOCATION "${DEPS_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${library}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endfunction()

set(PHYSFS_ARCHIVE_ZIP ON CACHE BOOL "" FORCE)
set(PHYSFS_ARCHIVE_7Z ON CACHE BOOL "" FORCE)

import_static_library(glfw3)

add_subdirectory(src/dr_libs)
add_subdirectory(src/enet)
add_subdirectory(src/fastnoiselite)
add_subdirectory(src/glad)
add_subdirectory(src/imgui)
add_subdirectory(src/miniz)
add_subdirectory(src/parson)
add_subdirectory(src/physfs)
add_subdirectory(src/salad)
add_subdirectory(src/spdlog)
add_subdirectory(src/stb)

set(DEPS_INCLUDE_DIR "${DEPS_INCLUDE_DIR}" PARENT_SCOPE)
set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}" PARENT_SCOPE)