here-abarany commented on code in PR #3435:
URL: https://github.com/apache/avro/pull/3435#discussion_r2213840667


##########
lang/c++/CMakeLists.txt:
##########
@@ -56,8 +56,25 @@ set(AVRO_VERSION 
"${AVRO_VERSION_MAJOR}.${AVRO_VERSION_MINOR}.${AVRO_VERSION_PAT
 project (Avro-cpp)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR})
 
+# Try to respect BUILD_SHARED_LIBS if set. If not set, then fall back to the 
original default of
+# both static and shared.
+if (DEFINED BUILD_SHARED_LIBS)

Review Comment:
   `BUILD_SHARED_LIBS` is a standard CMake variable that determines the default 
behavior of `add_library()`. [See documentation 
here.](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html)
   
   While you are correct that technically using `BUILD_SHARED_LIBS` isn't 
required to cover this use case, the intent is to support reasonable 
expectations out of the box for those who have tooling built around standard 
CMake behavior. It is generally expected for a "well-behaved" CMake project to 
respect `BUILD_SHARED_LIBS` to control the type of linking that is used. For 
example, if you have many external dependencies you are building with CMake, 
you would ideally apply a common set of options across all of them and only 
occasionally need to apply project-specific options. While *technically* always 
using the default of "build both" regardless of the value of 
`BUILD_SHARED_LIBS` should work as either library will be available, if the 
user set the variable it stands to reason that they only care about one or the 
other.
   
   I suppose you could make the argument that this isn't quite the same, as the 
shared and static targets use different names. (with the `_s` suffix for 
static) If you feel that this invalidates my above argument, I will respect 
your decision.
   
   As far as inverting the variables with `SKIP`, I can make that change if 
you'd prefer. I set it this way initially as it is consistent with 
`AVRO_BUILD_EXECUTABLES` and `AVRO_BUILD_TESTS`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@avro.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to