Skip to content

Commit 90dfc7a

Browse files
committed
[FIX] : fix shared issues
1 parent c8b0ebf commit 90dfc7a

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

CMakeLists.txt

+27-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.0)
1+
cmake_minimum_required(VERSION 3.20)
22

33
set(PROJECT ctools)
44
enable_language(C CXX)
@@ -11,6 +11,10 @@ option(USE_SDL_CLIPBOARD "Use Clipboard via SDL2 (need SDL2)" OFF)
1111
option(USE_TESTING_CTOOLS "Enable Ctools Tests" OFF)
1212
option(USE_SHARED_LIB_CTOOLS "Enable Ctools Shared Lib" OFF)
1313

14+
if (USE_SHARED_LIB_CTOOLS)
15+
set(USE_SHARED_LIBS ON)
16+
endif()
17+
1418
set(CMAKE_CXX_STANDARD 17)
1519
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1620
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -68,7 +72,7 @@ elseif(WIN32)
6872
endif()
6973

7074
if(MSVC)
71-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /std:c++17")
75+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
7276
add_definitions(-D__STDC__)
7377
add_definitions(-DMSVC)
7478
add_definitions(-DNOMINMAX)
@@ -78,7 +82,9 @@ else ()
7882
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -std=c++17 -Wunused-parameter -Wno-unknown-pragmas")
7983
endif ()
8084

81-
if (USE_SHARED_LIB_CTOOLS)
85+
set(LIBRARIES_TO_LINK_IN_CTOOLS ${LIBRARIES_TO_LINK_IN_CTOOLS})
86+
87+
if (USE_SHARED_LIBS)
8288
set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
8389
set(LLVM_USE_CRT_DEBUG MDd CACHE STRING "" FORCE)
8490
set(LLVM_USE_CRT_MINSIZEREL MD CACHE STRING "" FORCE)
@@ -95,12 +101,6 @@ if (USE_SHARED_LIB_CTOOLS)
95101
target_compile_definitions(${PROJECT} INTERFACE BUILD_CTOOLS_SHARED_LIBS)
96102
set_target_properties(${PROJECT} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${FINAL_BIN_DIR}")
97103
set_target_properties(${PROJECT} PROPERTIES POSITION_INDEPENDENT_CODE ON)
98-
target_link_libraries(${PROJECT} ${GLAD_LIBRARIES} ${TINYXML2_LIBRARIES})
99-
if (USE_GLFW_CLIPBOARD)
100-
target_link_libraries(${PROJECT} glfw)
101-
elseif(USE_SDL_CLIPBOARD)
102-
target_link_libraries(${PROJECT} SDL2)
103-
endif()
104104
else()
105105
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
106106
set(LLVM_USE_CRT_DEBUG MTd CACHE STRING "" FORCE)
@@ -117,7 +117,7 @@ else()
117117
${GLVERSIONCHECKER_INC})
118118
endif()
119119

120-
include_directories(.)
120+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
121121

122122
set_target_properties(${PROJECT} PROPERTIES LINKER_LANGUAGE CXX)
123123

@@ -131,13 +131,29 @@ target_include_directories(${PROJECT} PUBLIC
131131
${CMAKE_CURRENT_SOURCE_DIR}/include
132132
${GLAD_INCLUDE_DIR}
133133
${TINYXML2_INCLUDE_DIR}
134+
${LIBRARIES_TO_INCLUDE_IN_CTOOLS}
135+
)
136+
137+
set(CTOOLS_LIBRARIES
138+
${GLAD_LIBRARIES}
139+
${TINYXML2_LIBRARIES}
140+
${LIBRARIES_TO_LINK_IN_CTOOLS}
141+
)
142+
if (USE_GLFW_CLIPBOARD)
143+
set(CTOOLS_LIBRARIES ${CTOOLS_LIBRARIES} glfw)
144+
elseif(USE_SDL_CLIPBOARD)
145+
set(CTOOLS_LIBRARIES ${CTOOLS_LIBRARIES} SDL2)
146+
endif()
147+
148+
target_link_libraries(${PROJECT}
149+
${CTOOLS_LIBRARIES}
134150
)
135151

136152
set(${PROJECT}_Output_Name "${PROJECT}$<$<CONFIG:Debug>:d>")
137153
set_target_properties(${PROJECT} PROPERTIES OUTPUT_NAME "${${PROJECT}_Output_Name}")
138154

139155
set(CTOOLS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include PARENT_SCOPE)
140-
set(CTOOLS_LIBRARIES ${PROJECT} PARENT_SCOPE)
156+
set(CTOOLS_LIBRARIES ${CTOOLS_LIBRARIES} ${PROJECT} PARENT_SCOPE)
141157
set(CTOOLS_LIB_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
142158

143159
#############################################################

include/ctools/FileHelper.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ SOFTWARE.
2929
#include <map>
3030
#include <memory>
3131

32-
#if defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__WIN64__) || defined(WIN64) || \
33-
defined(_WIN64) || defined(_MSC_VER)
32+
#if defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__WIN64__) || defined(WIN64) || defined(_WIN64) || defined(_MSC_VER)
3433
#if defined(ctools_EXPORTS)
3534
#define CTOOLS_API __declspec(dllexport)
3635
#elif defined(BUILD_CTOOLS_SHARED_LIBS)

include/ctools/Logger.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ SOFTWARE.
2525
#pragma once
2626
#pragma warning(disable : 4251)
2727

28-
#if defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__WIN64__) || defined(WIN64) || \
29-
defined(_WIN64) || defined(_MSC_VER)
28+
#if defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__WIN64__) || defined(WIN64) || defined(_WIN64) || defined(_MSC_VER)
3029
#if defined(ctools_EXPORTS)
3130
#define CTOOLS_API __declspec(dllexport)
3231
#elif defined(BUILD_CTOOLS_SHARED_LIBS)

0 commit comments

Comments
 (0)