As far as I can tell the library name is determined by arguments to `add_arrow_lib`[1]. For the main arrow library, the argument itself is not parameterized [2]. So, I think the short answer is that the functionality you're asking for isn't available.
If you're interested, you could locally (for yourself) parameterize this with a new option that defaults to empty string (backwards compatible). I'm not sure what you would call the option, maybe something like... `LIB_NAME_BUILDTYPE_SUFFIX`? The logic would be something similar to checking `ARROW_USE_OPENSSL` and setting a cmake variable to a non-empty string if so [3] (instead of `list(APPEND ...)`, just use `set(LIB_NAME_SUFFIX)`). Then, optionally, you can make a PR for it for others that might be interested in a similar feature. I would think that if it's well enough named the community would be supportive, and if it's not well enough named then someone might have a good suggestion. [1]: https://github.com/apache/arrow/blob/main/cpp/cmake_modules/BuildUtils.cmake#L196 [2]: https://github.com/apache/arrow/blob/main/cpp/src/arrow/CMakeLists.txt#L1018 [3]: https://github.com/apache/arrow/blob/main/cpp/src/arrow/CMakeLists.txt#L42-L44 # ------------------------------ # Aldrin https://github.com/drin/ https://gitlab.com/octalene https://keybase.io/octalene On Friday, November 22nd, 2024 at 12:15, Carl Godkin <[email protected]> wrote: > Hi Felipe, > Thanks for your reply. > > I understand that and already build in two sub-directories of cpp called > `win64_build` and `win64_debug`. > > But the libraries end up with the same names still so I can install them to > the same place. In other words, when I do this: > > > cmake -G "NMake Makefiles" ^ > -DCMAKE_BUILD_TYPE=Release ^ > -DCMAKE_INSTALL_PREFIX=d:\arrow-18.0.0 ^ > -DARROW_CSV=ON ^ > -DARROW_PARQUET=ON ^ > -DPARQUET_BUILD_EXECUTABLES=ON ^ > -DPARQUET_BUILD_EXAMPLES=ON ^ > -DARROW_WITH_SNAPPY=ON ^ > .. > > nmake > > nmake install > > and then do the same thing for my debug build, the libraries overwrite each > other. > > Other libraries that I use append a "d" or "D" to the library and DLL names > which is what I hope to be able to do here. But I can't see how to do it and > I'm by no means a cmake expert. > > I realize that I can rename the files AFTER I build them (e.g., using this > Python script) but that doesn't quite work in this case since parquet.dll > depends on arrow.dll. What ends up happening is that my "parquetD.dll" > depends on the original name ("arrow.dll"). > > Thanks a lot for any suggestions, > > carl > > > > On Fri, Nov 22, 2024 at 12:00 PM Felipe Oliveira Carvalho > <[email protected]> wrote: > > > You can create two different build directories: release and debug. > > > > Then you run cmake $ARROW_ROOT on the two different folders. > > > > On Fri, 22 Nov 2024 at 15:53 Carl Godkin <[email protected]> wrote: > > > > > Hi, > > > I'm using the arrow library with parquet version 18.0.0 on Windows and > > > Linux from C++. > > > > > > For development purposes, I build both a debug and release version of the > > > libraries. However, I noticed that (e.g., on Windows) the arrow and > > > parquet libraries are named arrow.lib/.dll and parquet.lib/.dll after > > > both builds. > > > > > > I'd like to specify a different name for the debug builds and don't find > > > a cmake option for this. > > > > > > Is there a good way to do this? > > > > > > Thanks a lot, > > > > > > carl
publickey - [email protected] - 0x21969656.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
