[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