| # SPDX-License-Identifier: Apache-2.0 |
| # ---------------------------------------------------------------------------- |
| # Copyright 2020-2022 Arm Limited |
| # |
| # 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. |
| # ---------------------------------------------------------------------------- |
| |
| # Overwrite the LTO flags to force fat LTO; worth 3-4% performance |
| # See https://gitlab.kitware.com/cmake/cmake/-/issues/16808 |
| if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND ${CLI}) |
| set(CMAKE_CXX_COMPILE_OPTIONS_IPO "-flto") |
| endif() |
| |
| if(${DECOMPRESSOR}) |
| set(CODEC dec) |
| else() |
| set(CODEC enc) |
| endif() |
| |
| if(${UNIVERSAL_BUILD}) |
| if(${ISA_AVX2}) |
| set(ISA_SIMD "avx2") |
| elseif(${ISA_SSE41}) |
| set(ISA_SIMD "sse4.1") |
| elseif(${ISA_SSE2}) |
| set(ISA_SIMD "sse2") |
| endif() |
| include(cmake_core.cmake) |
| else() |
| set(ARTIFACTS native none neon avx2 sse4.1 sse2) |
| set(CONFIGS ${ISA_NATIVE} ${ISA_NONE} ${ISA_NEON} ${ISA_AVX2} ${ISA_SSE41} ${ISA_SSE2}) |
| list(LENGTH ARTIFACTS ARTIFACTS_LEN) |
| math(EXPR ARTIFACTS_LEN "${ARTIFACTS_LEN} - 1") |
| |
| foreach(INDEX RANGE ${ARTIFACTS_LEN}) |
| list(GET ARTIFACTS ${INDEX} ARTIFACT) |
| list(GET CONFIGS ${INDEX} CONFIG) |
| if(${CONFIG}) |
| set(ISA_SIMD ${ARTIFACT}) |
| include(cmake_core.cmake) |
| endif() |
| endforeach() |
| endif() |
| |
| # - - - - - - - - - - - - - - - - - - |
| # Unit testing |
| if(${UNITTEST}) |
| set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) |
| add_subdirectory(GoogleTest) |
| enable_testing() |
| add_subdirectory(UnitTest) |
| endif() |