assignUser commented on PR #719:
URL: https://github.com/apache/arrow-nanoarrow/pull/719#issuecomment-2727571748

   I think you should change `nanoarrow` explicitly to `nanoarrow_static` to be 
consistent and then add a `nanoarrow::nanoarrow` alias to it (I assume static 
will be the default? Or you could base that on `BUILD_SHARED_LIBS` like this
   ```cmake
   if(BUILD_SHARED_LIBS)
     add_library(nanoarrow::nanoarrow ALIAS nanoarrow_shared)
   else()
     add_library(nanoarrow::nanoarrow ALIAS nanoarrow_static)
   endif()
   ```
   This is mostly relevant when nanoarrow is built as a subproject. You could 
also add an option that allows toggling the building of either version (gflags 
does that). That way I don't have to compile everything twice if I only care 
about static.
   
   For packaging the shared bit could be made a component that also changes 
which target gets the main alias. (again something gflags does 
`find_package(gflags COMPONENTS shared)`
   
   nit: You should be able to create an INTERFACE target for the sources and 
use that instead of variables: 
https://cmake.org/cmake/help/latest/prop_tgt/INTERFACE_SOURCES.html
   
   I haven't used an interface target but it's a nice solution to avoid raw 
variables (which I am always happy about...)


-- 
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: github-unsubscr...@arrow.apache.org

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

Reply via email to