提交 6405fd15 编写于 作者: M Max Bruckner

CMake: Set default visibility to hidden and dllexport on windows

上级 b44c917b
......@@ -61,6 +61,16 @@ if (ENABLE_SANITIZERS)
)
endif()
option(ENABLE_PUBLIC_SYMBOLS "Export library symbols." On)
if (ENABLE_PUBLIC_SYMBOLS)
list(APPEND custom_compiler_flags -fvisibility=hidden)
add_definitions(-DCJSON_EXPORT_SYMBOLS -DCJSON_API_VISIBILITY)
endif()
option(ENABLE_HIDDEN_SYMBOLS "Hide library symbols." Off)
if (ENABLE_HIDDEN_SYMBOLS)
add_definitions(-DCJSON_HIDE_SYMBOLS -UCJSON_API_VISIBILITY)
endif()
# apply custom compiler flags
foreach(compiler_flag ${custom_compiler_flags})
#remove problematic characters
......
......@@ -23,6 +23,7 @@
/* cJSON */
/* JSON parser in C. */
#pragma GCC visibility push(default)
#include <string.h>
#include <stdio.h>
#include <math.h>
......@@ -30,6 +31,8 @@
#include <float.h>
#include <limits.h>
#include <ctype.h>
#pragma GCC visibility pop
#include "cJSON.h"
/* define our own boolean type */
......
......@@ -7,6 +7,11 @@ if(ENABLE_CJSON_TEST)
if (werror_found)
target_compile_options(unity PRIVATE "-Wno-error")
endif()
# Disable -fvisibility=hidden for Unity
list(FIND custom_compiler_flags "-fvisibility=hidden" visibility_found)
if (visibility_found)
target_compile_options(unity PRIVATE "-fvisibility=default")
endif()
#copy test files
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/inputs")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册