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

Attachment: publickey - [email protected] - 0x21969656.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to