[CMake] Globally Set Target Properties
Schuchard, Matthew
Matthew.Schuchard at gtri.gatech.edu
Tue Nov 8 07:36:53 EST 2011
Thanks, I think I must be doing something wrong elsewhere then, because I follow the same syntax as what you wrote.
However, it is not working for me which means my error must be somewhere else.
I had thought, based on a stack overflow link, that CMAKE_STATIC_LIBRARY_PREFIX was only for linking to libraries, but I see now it is also for linking built libraries.
-----Original Message-----
From: Michael Wild [mailto:themiwi at gmail.com]
Sent: Tuesday, November 08, 2011 12:34 AM
To: Schuchard, Matthew
Cc: cmake at cmake.org
Subject: Re: Globally Set Target Properties
Sorry, I misread your message. The following works for me:
--------<8----------
cmake_minimum_required(VERSION 2.8)
project(static)
set(CMAKE_STATIC_LIBRARY_PREFIX)
add_library(a STATIC a.c)
add_library(b STATIC b.c)
-------->8----------
Michael
On 11/07/2011 05:14 PM, Schuchard, Matthew wrote:
> Thanks for the response.
>
>
>
> Actually, that is what I want to do:
>
>
>
> "> Specifically, I need to remove the prefix "lib" from all statically
>
>> linked libraries I build."
>
>
>
> Also, I do not have to specify full paths to libraries I link to
> because of the CMAKE_STATIC_LIBRARY_PREFIX command I had mentioned in
> the initial message.
>
> Do you know if is possible to set global properties of targets like I
> am trying to?
>
>
>
> *From:*Schuchard, Matthew
> *Sent:* Monday, November 07, 2011 11:06 AM
> *To:* Schuchard, Matthew
> *Subject:* Globally Set Target Properties
>
>
>
> On 11/07/2011 04:15 PM, Schuchard, Matthew wrote:
>
>>/I am trying to globally set target properties for an entire
> configuration. /
>
>>//
>
>>/Specifically, I need to remove the prefix "lib" from all statically /
>
>>/linked libraries I build. /
>
>>//
>
>>/ /
>
>>//
>
>>/I already used CMAKE_STATIC_LIBRARY_PREFIX "" such that all libraries
>>I /
>
>>/explicitly link to will not have CMake search for libraries of format
>>/
>
>>/"libfoo.a" but rather "foo.a" when I specify "foo." /
>
>>//
>
>>/ /
>
>>//
>
>>/However, I cannot seem to globally specify that all target libraries
>>/
>
>>/which are statically linked which I build have the prefix removed. /
>
>>//
>
>>/ /
>
>>//
>
>>/I have tried set_target_properties with Unix wildcards to no avail. /
>
>>//
>
>>/I have also tried set_property(GLOBAL PROPERTY PREFIX "") and /
>
>>/set_property(TARGET PROPERTY PREFIX "") which were both unsuccessful
>>(or /
>
>>/maybe I needed to force the cache, but cache was already an argument
>>in /
>
>>/the usage statement providing other functionality so I assumed its /
>
>>/normal functionality as an argument was unavailable). /
>
>>//
>
>>/Could not find any help on Google either. /
>
>>//
>
>>/ /
>
>>//
>
>>/There is also the possibility this is impossible to do with CMake, so
>>if /
>
>>/someone can verify that I would also be appreciative. /
>
>>//
>
>
>
> *From:**Michael Wild* themiwi at gmail.com
> <mailto:cmake%40cmake.org?Subject=Re%3A%20%5BCMake%5D%20Globally%20Set
> %20Target%20Properties&In-Reply-To=%3C4EB7F7A2.50903%40gmail.com%3E>
> *Sent:* Monday, November 07, 2011 10:56 AM
> *To:* Schuchard, Matthew
> *Subject:* Globally Set Target Properties
>
>
>
> These properties apply to targets *create* by CMake, that's not what
> you
>
> want. In your case, simply specify the absolute path to the library
>
> file. E.g.
>
>
>
> target_link_libraries(bar /usr/lib/foo.a)
>
>
>
> If you want to use find_library to find these libraries, have a look
> at
>
> CMAKE_FIND_LIBRARY_PREFIXES.
>
>
>
> HTH
>
>
>
> Michael
>
>
>
More information about the CMake
mailing list