more cleanup
[awesomized/libmemcached] / CMake / CheckVisibility.cmake
1 configure_define(HAVE_VISIBILITY)
2
3 check_flag(-fvisibility=hidden HAVE_VISIBILITY_FLAG)
4 if(NOT HAVE_VISIBILITY_FLAG)
5 check_flag(-Wl,-fvisibility=hidden HAVE_VISIBILITY_LINKER_FLAG)
6 endif()
7 check_c_source("
8 __attribute__ ((visibility (\"default\")))
9 int main(int argc, char **argv) {
10 return *argv[argc-1];
11 }"
12 HAVE_VISIBILITY_ATTR
13 )
14
15 if(HAVE_VISIBILITY_ATTR AND (HAVE_VISIBILITY_FLAG OR HAVE_VISIBILITY_LINKER_FLAG))
16 if(HAVE_VISIBILITY_LINKER_FLAG)
17 string(APPEND CMAKE_SHARED_LINKER_FLAGS " -Wl,-fvisibility=hidden")
18 else()
19 add_compile_options("-fvisibility=hidden")
20 endif()
21 set(HAVE_VISIBILITY 1 CACHE INTERNAL "-fvisibility and __attribute__((visibility(...)))")
22 endif()