xref: /oneTBB/python/rml/CMakeLists.txt (revision fa3268c3)
1b15aabb3Stbbdev# Copyright (c) 2020-2021 Intel Corporation
251c0b2f7Stbbdev#
351c0b2f7Stbbdev# Licensed under the Apache License, Version 2.0 (the "License");
451c0b2f7Stbbdev# you may not use this file except in compliance with the License.
551c0b2f7Stbbdev# You may obtain a copy of the License at
651c0b2f7Stbbdev#
751c0b2f7Stbbdev#     http://www.apache.org/licenses/LICENSE-2.0
851c0b2f7Stbbdev#
951c0b2f7Stbbdev# Unless required by applicable law or agreed to in writing, software
1051c0b2f7Stbbdev# distributed under the License is distributed on an "AS IS" BASIS,
1151c0b2f7Stbbdev# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1251c0b2f7Stbbdev# See the License for the specific language governing permissions and
1351c0b2f7Stbbdev# limitations under the License.
1451c0b2f7Stbbdev
15d86ed7fbStbbdevadd_library(irml
1651c0b2f7Stbbdev    ../../src/tbb/allocator.cpp
1751c0b2f7Stbbdev    ../../src/tbb/dynamic_link.cpp
1851c0b2f7Stbbdev    ../../src/tbb/misc.cpp
1951c0b2f7Stbbdev    ../../src/tbb/misc_ex.cpp
2051c0b2f7Stbbdev    ../../src/tbb/exception.cpp
2151c0b2f7Stbbdev    ipc_server.cpp
2251c0b2f7Stbbdev    ipc_utils.cpp
2351c0b2f7Stbbdev)
2451c0b2f7Stbbdevadd_library(TBB::irml ALIAS irml)
2551c0b2f7Stbbdev
2651c0b2f7Stbbdevset_target_properties(irml PROPERTIES VERSION 1)
2751c0b2f7Stbbdev
2851c0b2f7Stbbdevtarget_include_directories(irml
2951c0b2f7Stbbdev    PUBLIC
3051c0b2f7Stbbdev    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include>
31*fa3268c3SJan Tojnar    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
3251c0b2f7Stbbdev
3351c0b2f7Stbbdevtarget_compile_options(irml
3451c0b2f7Stbbdev    PRIVATE
3551c0b2f7Stbbdev    ${TBB_CXX_STD_FLAG} # TODO: consider making it PUBLIC.
3651c0b2f7Stbbdev    ${TBB_MMD_FLAG}
3751c0b2f7Stbbdev    ${TBB_DSE_FLAG}
3851c0b2f7Stbbdev    ${TBB_WARNING_LEVEL}
3951c0b2f7Stbbdev    ${TBB_LIB_COMPILE_FLAGS}
4051c0b2f7Stbbdev    ${TBB_COMMON_COMPILE_FLAGS}
4151c0b2f7Stbbdev)
4251c0b2f7Stbbdev
43b15aabb3Stbbdevtarget_compile_definitions(irml
44b15aabb3Stbbdev                           PUBLIC
45b15aabb3Stbbdev                           $<$<CONFIG:DEBUG>:TBB_USE_DEBUG>)
46b15aabb3Stbbdev
4751c0b2f7Stbbdev# Prefer using target_link_options instead of target_link_libraries to specify link options because
4851c0b2f7Stbbdev# target_link_libraries may incorrectly handle some options (on Windows, for example).
4951c0b2f7Stbbdevif (COMMAND target_link_options)
5051c0b2f7Stbbdev    target_link_options(irml
5151c0b2f7Stbbdev        PRIVATE
5251c0b2f7Stbbdev        ${TBB_LIB_LINK_FLAGS}
5351c0b2f7Stbbdev        ${TBB_COMMON_LINK_FLAGS}
5451c0b2f7Stbbdev    )
5551c0b2f7Stbbdevelse()
5651c0b2f7Stbbdev    target_link_libraries(irml
5751c0b2f7Stbbdev        PRIVATE
5851c0b2f7Stbbdev        ${TBB_LIB_LINK_FLAGS}
5951c0b2f7Stbbdev        ${TBB_COMMON_LINK_FLAGS}
6051c0b2f7Stbbdev    )
6151c0b2f7Stbbdevendif()
6251c0b2f7Stbbdev
6351c0b2f7Stbbdevtarget_link_libraries(irml
6451c0b2f7Stbbdev    PRIVATE
6551c0b2f7Stbbdev    Threads::Threads
6651c0b2f7Stbbdev    ${TBB_LIB_LINK_LIBS}
6751c0b2f7Stbbdev    ${TBB_COMMON_LINK_LIBS}
6851c0b2f7Stbbdev)
6951c0b2f7Stbbdev
7051c0b2f7Stbbdevif (DEFINED TBB_SIGNTOOL)
7151c0b2f7Stbbdev    string(REPLACE " " ";" TBB_SIGNTOOL_ARGS "${TBB_SIGNTOOL_ARGS}")
7251c0b2f7Stbbdev    add_custom_command(TARGET irml POST_BUILD COMMAND ${TBB_SIGNTOOL} $<TARGET_FILE:irml> ${TBB_SIGNTOOL_ARGS})
7351c0b2f7Stbbdevendif()
7451c0b2f7Stbbdev
7551c0b2f7Stbbdevinstall(TARGETS irml
7651c0b2f7Stbbdev    EXPORT TBBTargets
77d86ed7fbStbbdev    LIBRARY
78d86ed7fbStbbdev        DESTINATION ${CMAKE_INSTALL_LIBDIR}
79d86ed7fbStbbdev        COMPONENT tbb4py
80d86ed7fbStbbdev    RUNTIME
81d86ed7fbStbbdev        DESTINATION ${CMAKE_INSTALL_BINDIR}
82d86ed7fbStbbdev        COMPONENT tbb4py
83d86ed7fbStbbdev    ARCHIVE
84d86ed7fbStbbdev        DESTINATION ${CMAKE_INSTALL_LIBDIR}
85d86ed7fbStbbdev        COMPONENT tbb4py)
86