aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/Modules/BuildMacros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/BuildMacros.cmake')
-rw-r--r--cmake/Modules/BuildMacros.cmake235
1 files changed, 0 insertions, 235 deletions
diff --git a/cmake/Modules/BuildMacros.cmake b/cmake/Modules/BuildMacros.cmake
deleted file mode 100644
index d360d26af..000000000
--- a/cmake/Modules/BuildMacros.cmake
+++ /dev/null
@@ -1,235 +0,0 @@
-# Copyright (c) 2017-2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-##############################
-# Utils for building libraries and executables
-#
-
-include(GNUInstallDirs)
-
-macro(build_executable exec)
- cmake_parse_arguments(ARG
- "NO_INSTALL"
- "COMPONENT"
- "SOURCES;LINK_LIBRARIES;DEPENDS;INCLUDE_DIRS;DEFINITIONS;LINK_FLAGS"
- ${ARGN}
- )
-
- add_executable(${exec}-bin ${ARG_SOURCES})
-
- set(BUILD_ROOT ${CMAKE_BINARY_DIR}/build-root)
-
- set_target_properties(${exec}-bin
- PROPERTIES
- OUTPUT_NAME ${exec}
- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}"
- INSTALL_RPATH_USE_LINK_PATH TRUE
- ARCHIVE_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- LIBRARY_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- RUNTIME_OUTPUT_DIRECTORY "${BUILD_ROOT}/bin"
- LINK_FLAGS "${ARG_LINK_FLAGS}"
- )
-
- if(ARG_LINK_LIBRARIES)
- target_link_libraries(${exec}-bin ${ARG_LINK_LIBRARIES})
- endif()
-
- if(ARG_DEPENDS)
- add_dependencies(${exec}-bin ${ARG_DEPENDS})
- endif()
-
- if(ARG_DEFINITIONS)
- target_compile_definitions(${exec}-bin PRIVATE ${ARG_DEFINITIONS})
- endif()
-
- if(ARG_INCLUDE_DIRS)
- target_include_directories(${exec}-bin BEFORE PUBLIC
- ${ARG_INCLUDE_DIRS}
- ${PROJECT_BINARY_DIR}
- )
- endif()
-
- if(NOT ARG_NO_INSTALL)
- install(
- TARGETS ${exec}-bin
- RUNTIME
- DESTINATION ${CMAKE_INSTALL_BINDIR}
- COMPONENT ${ARG_COMPONENT}
- )
- endif()
-endmacro()
-
-macro(build_library lib)
- cmake_parse_arguments(ARG
- "SHARED;STATIC;NO_DEV"
- "COMPONENT;"
- "SOURCES;LINK_LIBRARIES;INSTALL_HEADERS;DEPENDS;INCLUDE_DIRS;DEFINITIONS;INSTALL_ROOT_DIR;INSTALL_FULL_PATH_DIR;EMPTY_PREFIX;"
- ${ARGN}
- )
-
- if (ARG_SHARED)
- list(APPEND TARGET_LIBS
- ${lib}.shared
- )
- add_library(${lib}.shared SHARED ${ARG_SOURCES})
- endif()
-
- if(ARG_STATIC)
- list(APPEND TARGET_LIBS
- ${lib}.static
- )
- add_library(${lib}.static STATIC ${ARG_SOURCES})
- endif()
-
- if(NOT ARG_COMPONENT)
- set(ARG_COMPONENT hicn)
- endif()
-
- set(BUILD_ROOT ${CMAKE_BINARY_DIR}/build-root)
-
- foreach(library ${TARGET_LIBS})
-
- if(HICN_VERSION)
- set_target_properties(${library}
- PROPERTIES
- SOVERSION ${HICN_VERSION}
- )
- endif()
-
- if (${ARG_EMPTY_PREFIX})
- set_target_properties(${library}
- PROPERTIES
- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}"
- INSTALL_RPATH_USE_LINK_PATH TRUE
- PREFIX ""
- ARCHIVE_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- LIBRARY_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- RUNTIME_OUTPUT_DIRECTORY "${BUILD_ROOT}/bin"
- )
- else ()
- set_target_properties(${library}
- PROPERTIES
- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}"
- INSTALL_RPATH_USE_LINK_PATH TRUE
- ARCHIVE_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- LIBRARY_OUTPUT_DIRECTORY "${BUILD_ROOT}/lib"
- RUNTIME_OUTPUT_DIRECTORY "${BUILD_ROOT}/bin"
- )
- endif()
-
- if (WIN32)
- target_compile_options(${library} PRIVATE)
- set_target_properties(${library}
- PROPERTIES
- WINDOWS_EXPORT_ALL_SYMBOLS TRUE
- )
- else ()
- target_compile_options(${library} PRIVATE -Wall)
- set_target_properties(${library}
- PROPERTIES
- OUTPUT_NAME ${lib}
- )
- endif ()
-
- # library deps
- if(ARG_LINK_LIBRARIES)
- target_link_libraries(${library} ${ARG_LINK_LIBRARIES})
- endif()
-
- if(ARG_DEFINITIONS)
- target_compile_definitions(${library} PRIVATE ${ARG_DEFINITIONS})
- endif()
-
- if(ARG_INCLUDE_DIRS)
- target_include_directories(${library} BEFORE PUBLIC
- ${ARG_INCLUDE_DIRS}
- ${PROJECT_BINARY_DIR}
- )
- endif()
-
- set(INSTALL_LIB_PATH ${CMAKE_INSTALL_LIBDIR})
-
- if (ARG_INSTALL_FULL_PATH_DIR)
- set(INSTALL_LIB_PATH ${ARG_INSTALL_FULL_PATH_DIR})
- endif()
-
- install(
- TARGETS ${library}
- COMPONENT ${ARG_COMPONENT}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${INSTALL_LIB_PATH}
- )
-
- if(ARG_DEPENDS)
- add_dependencies(${library} ${ARG_DEPENDS})
- endif()
- endforeach()
-
- # install headers
- if(ARG_INSTALL_HEADERS)
- if (NOT ARG_INSTALL_ROOT_DIR)
- set(ARG_INSTALL_ROOT_DIR "hicn")
- endif()
-
- list(APPEND local_comps
- ${ARG_COMPONENT}-dev
- )
-
- foreach(file ${ARG_INSTALL_HEADERS})
- get_filename_component(_dir ${file} DIRECTORY)
-
- if (_dir)
- get_filename_component(dir ${_dir} NAME)
- if ("${dir}" STREQUAL src)
- set(dir "")
- endif()
- if ("${dir}" STREQUAL includes)
- set(dir "")
- endif()
- if ("${dir}" STREQUAL ${ARG_INSTALL_ROOT_DIR})
- set(dir "")
- endif()
- else()
- set(dir "")
- endif()
-
- set(COMPONENT ${ARG_COMPONENT})
- if (NOT ARG_NO_DEV)
- set(COMPONENT ${COMPONENT}-dev)
- endif()
- install(
- FILES ${file}
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${ARG_INSTALL_ROOT_DIR}/${dir}
- COMPONENT ${COMPONENT}
- )
- endforeach()
- endif()
-endmacro()
-
-add_custom_target(${PROJECT_NAME}_cleanup_profiling_data
- "find" "." "-name" "*.gcda" "-delete"
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Cleanup previous profiling data."
-)
-
-macro(AddTest testFile)
- add_executable(${ARGV0} ${ARGV0}.cc)
- target_link_libraries(${ARGV0} ${TARGET_TRANSPORT_STATIC} ${GTEST_LIBRARIES})
- add_test(${ARGV0} ${ARGV0})
- set_target_properties(${ARGV0} PROPERTIES FOLDER Test)
- add_dependencies(${ARGV0} ${PROJECT_NAME}_cleanup_profiling_data)
-endmacro(AddTest)
-
-include(IosMacros)
-include(WindowsMacros)