43 lines
2 KiB
CMake
43 lines
2 KiB
CMake
## ======================================================================== ##
|
|
## Copyright 2017 Kitware, Inc. ##
|
|
## ##
|
|
## 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. ##
|
|
## ======================================================================== ##
|
|
|
|
SET(CHECK_ISA_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
|
FUNCTION(CHECK_ISA_DEFAULT OUTVAR)
|
|
|
|
TRY_COMPILE(COMPILER_SUPPORTS_ARM_NEON "${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/common/cmake/check_arm_neon.cpp")
|
|
IF (COMPILER_SUPPORTS_ARM_NEON)
|
|
SET(ISA_DEFAULT "NEON")
|
|
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
|
RETURN()
|
|
ENDIF()
|
|
|
|
SET(ISA_DEFAULT_BIN "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/check_isa_default.bin")
|
|
SET(SRC "${CHECK_ISA_DIR}/check_isa.cpp")
|
|
TRY_COMPILE(ISA_DEFAULT_COMPILE
|
|
"${CMAKE_BINARY_DIR}"
|
|
"${SRC}"
|
|
COPY_FILE "${ISA_DEFAULT_BIN}"
|
|
)
|
|
IF(NOT ISA_DEFAULT_COMPILE)
|
|
SET(ISA_DEFAULT "SSE2")
|
|
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
|
RETURN()
|
|
ENDIF()
|
|
|
|
FILE(STRINGS ${ISA_DEFAULT_BIN} ISA_DEFAULT REGEX "^ISA:")
|
|
STRING(REPLACE "ISA:" "" ISA_DEFAULT "${ISA_DEFAULT}")
|
|
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
|
ENDFUNCTION()
|