I supported clang-cl with BUILD_SHARED_LIBS#465
Conversation
|
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here with What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
|
@googlebot I signed it! |
|
CLAs look good, thanks! ℹ️ Googlers: Go here for more info. |
CMakeLists.txt
Outdated
| target_compile_definitions (glog PRIVATE GOOGLE_GLOG_IS_A_DLL=1) | ||
|
|
||
| if (HAVE___ATTRIBUTE__VISIBILITY_DEFAULT) | ||
| if (HAVE___ATTRIBUTE__VISIBILITY_DEFAULT AND NOT MSVC) |
There was a problem hiding this comment.
I think we are trying to avoid using vendor names explicitly. Maybe better to change the order of conditions?
if (HAVE___DECLSPEC)
set (_EXPORT "__declspec(dllexport)")
set (_IMPORT "__declspec(dllimport)")
elseif (HAVE___ATTRIBUTE__VISIBILITY_DEFAULT)
...
endif(HAVE___DECLSPEC)
There was a problem hiding this comment.
Thank you for your suggestion. I changed it.
shinh
left a comment
There was a problem hiding this comment.
LGTM! We could create a follow-up patch if Sergiu (the owner of cmake build) or others have any comments.
clang-cl (clang for msvc) can compiles
static void foo(void) __attribute__ ((visibility(\"default\")));But functions are not exported as DLL functions.
So these errors are caused.
I made HAVE___ATTRIBUTE__VISIBILITY_DEFAULT disabled on MSVC.