An Overlay-based
Virtual Network Substrate
SpoVNet

source: CMakeModules/BuildSharedAndStaticLib.cmake @ 10700

Last change on this file since 10700 was 10700, checked in by Michael Tänzer, 7 years ago

Merge CMake branch into trunk

File size: 3.1 KB
Line 
1# [License]
2# The Ariba-Underlay Copyright
3#
4# Copyright (c) 2008-2012, Institute of Telematics, UniversitÀt Karlsruhe (TH)
5#
6# Institute of Telematics
7# UniversitÀt Karlsruhe (TH)
8# Zirkel 2, 76128 Karlsruhe
9# Germany
10#
11# Redistribution and use in source and binary forms, with or without
12# modification, are permitted provided that the following conditions are
13# met:
14#
15# 1. Redistributions of source code must retain the above copyright
16# notice, this list of conditions and the following disclaimer.
17# 2. Redistributions in binary form must reproduce the above copyright
18# notice, this list of conditions and the following disclaimer in the
19# documentation and/or other materials provided with the distribution.
20#
21# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE OF TELEMATICS ``AS IS'' AND
22# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OF TELEMATICS OR
25# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32#
33# The views and conclusions contained in the software and documentation
34# are those of the authors and should not be interpreted as representing
35# official policies, either expressed or implied, of the Institute of
36# Telematics.
37# [License]
38
39# Variables to set for this macro to work:
40# ${lib_name}_SOURCES        - The source files the library consists of
41# ${lib_name}_LINK_LIBRARIES - The libraries the library should be linked to
42# ${lib_name}_VERSION        - The version of the library
43#                              (used for the shared lib)
44# ${lib_name}_SOVERSION      - The the SO version of the library
45#                              (used for the shared lib)
46#
47# After calling this macro the targets ${lib_name} and
48# ${${lib_name}_STATIC_TARGET} will be available
49
50
51macro(build_shared_and_static_libs lib_name)
52   
53    add_library(${lib_name} ${${lib_name}_SOURCES})
54    target_link_libraries(${lib_name} ${${lib_name}_LINK_LIBRARIES})
55   
56    # Library versioning
57    set_target_properties(${lib_name} PROPERTIES
58        VERSION ${${lib_name}_VERSION}
59        SOVERSION ${${lib_name}_SOVERSION}
60        )
61   
62    # If we built a shared library additionally compile a static one
63    if(BUILD_SHARED_LIBS)
64        set(${lib_name}_STATIC_TARGET ${lib_name}_static)
65        add_library(${${lib_name}_STATIC_TARGET} STATIC ${${lib_name}_SOURCES})
66        set_target_properties(${${lib_name}_STATIC_TARGET} PROPERTIES OUTPUT_NAME ${lib_name})
67        target_link_libraries(${${lib_name}_STATIC_TARGET} ${${lib_name}_LINK_LIBRARIES})
68    endif(BUILD_SHARED_LIBS)
69   
70endmacro(build_shared_and_static_libs lib_name)
Note: See TracBrowser for help on using the repository browser.