diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-10-23 16:17:36 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-10-23 16:27:30 +0200 |
| commit | 6e9b324ab7bf5909df7e68409e060282db14fa54 (patch) | |
| tree | 99383710e05b1e0bb046ce086ad522f54d55d5bc /src/lib_proj.cmake | |
| parent | 9817fe7db31d5a0716876e1f8f7f1a9ba4b91be0 (diff) | |
| download | PROJ-6e9b324ab7bf5909df7e68409e060282db14fa54.tar.gz PROJ-6e9b324ab7bf5909df7e68409e060282db14fa54.zip | |
CMake: revise how we deal with symbol export and static builds
- Remove the explicit PROJ_MSVC_DLL_IMPORT symbol used for importing
symbols from a MSVC .dll: by default on MSVC, we use
now __declspec(dllimport), unless PROJ_MSVC_DLL_EXPORT is defined
by PROJ at build time. This makes it easier for users: they
don't have to define anything special. This simplifies in particular
the build of our binaries
- For static builds, export -DPROJ_DLL= as public, so that users
that import PROJ through CMake mechanism don't have to do it
manually.
Diffstat (limited to 'src/lib_proj.cmake')
| -rw-r--r-- | src/lib_proj.cmake | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 4ece9094..efad5552 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -477,9 +477,12 @@ if(CURL_ENABLED) $<$<CXX_COMPILER_ID:MSVC>:normaliz>) endif() -if(MSVC AND BUILD_SHARED_LIBS) - target_compile_definitions(proj - PRIVATE PROJ_MSVC_DLL_EXPORT=1) +if(BUILD_SHARED_LIBS) + if(MSVC) + target_compile_definitions(proj PRIVATE PROJ_MSVC_DLL_EXPORT=1) + endif() +else() + target_compile_definitions(proj PUBLIC PROJ_DLL=) endif() ############################################## |
