diff options
Diffstat (limited to 'cmake/Modules/BuildMacros.cmake')
-rw-r--r-- | cmake/Modules/BuildMacros.cmake | 235 |
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) |