[CMake] Globally Set Target Properties

Michael Wild themiwi at gmail.com
Tue Nov 8 00:33:34 EST 2011


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