Skip to content

Commit 24d3fe6

Browse files
committed
fix shared build
1 parent a0bc7fd commit 24d3fe6

File tree

4 files changed

+14
-13
lines changed

4 files changed

+14
-13
lines changed

CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ else ()
4949

5050
if (THREEPP_USE_EXTERNAL_GLFW)
5151
find_package(glfw3 CONFIG REQUIRED)
52-
53-
if (NOT TARGET "glfw::glfw" AND TARGET "glfw")
54-
add_library(glfw::glfw ALIAS glfw)
55-
endif ()
5652
endif ()
5753

5854
endif ()
@@ -131,6 +127,9 @@ install(
131127
DESTINATION
132128
${CMAKE_INSTALL_DATADIR}/threepp)
133129

130+
if (BUILD_SHARED_LIBS AND NOT THREEPP_USE_EXTERNAL_GLFW)
131+
install(TARGETS glfw EXPORT threepp-targets)
132+
endif ()
134133
install(TARGETS threepp EXPORT threepp-targets)
135134
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
136135
install(EXPORT threepp-targets

cmake/config.cmake.in

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ include(CMakeFindDependencyMacro)
44

55
if (NOT DEFINED EMSCRIPTEN AND @THREEPP_USE_EXTERNAL_GLFW@)
66
find_dependency(glfw3 CONFIG)
7-
8-
if (NOT TARGET "glfw::glfw" AND TARGET "glfw")
9-
add_library(glfw::glfw ALIAS glfw)
10-
endif()
117
endif()
128

139
include(${CMAKE_CURRENT_LIST_DIR}/threepp-targets.cmake)

examples/external/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
add_library(imgui STATIC)
2+
add_library(imgui)
33
add_library(imgui::imgui ALIAS imgui)
44
target_sources(imgui PRIVATE
55
"imgui/imgui.cpp"

src/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,15 +499,21 @@ These can be installed on Ubuntu systems via sudo apt install libxinerama-dev li
499499
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
500500
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
501501
set(GLFW_BUILD_WAYLAND OFF CACHE BOOL "" FORCE)
502-
set(GLFW_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE)
502+
if (BUILD_SHARED_LIBS)
503+
set(GLFW_LIBRARY_TYPE "SHARED" CACHE STRING "" FORCE)
504+
else()
505+
set(GLFW_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE)
506+
endif()
503507
add_subdirectory("external/glfw")
504508

505509
# Hide glfw's symbols when building a shared lib
506510
if (BUILD_SHARED_LIBS)
507511
set_property(TARGET glfw PROPERTY C_VISIBILITY_PRESET hidden)
512+
else ()
513+
list(APPEND sources $<TARGET_OBJECTS:glfw>)
508514
endif ()
509515

510-
list(APPEND sources $<TARGET_OBJECTS:glfw>)
516+
511517
endif ()
512518
endif ()
513519

@@ -570,8 +576,8 @@ if (NOT DEFINED EMSCRIPTEN)
570576
"${CMAKE_CURRENT_SOURCE_DIR}/external/glad"
571577
)
572578

573-
if (THREEPP_USE_EXTERNAL_GLFW)
574-
target_link_libraries(threepp PRIVATE glfw::glfw)
579+
if (THREEPP_USE_EXTERNAL_GLFW OR BUILD_SHARED_LIBS)
580+
target_link_libraries(threepp PRIVATE glfw)
575581
else ()
576582
target_include_directories(threepp PRIVATE BEFORE SYSTEM "external/glfw/include")
577583
if (APPLE)

0 commit comments

Comments
 (0)