mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 13:16:44 +01:00
70 lines
2.2 KiB
CMake
70 lines
2.2 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
project(spqlios)
|
|
|
|
# read the current version from the manifest file
|
|
file(READ "manifest.yaml" manifest)
|
|
string(REGEX MATCH "version: +(([0-9]+)\\.([0-9]+)\\.([0-9]+))" SPQLIOS_VERSION_BLAH ${manifest})
|
|
#message(STATUS "Version: ${SPQLIOS_VERSION_BLAH}")
|
|
set(SPQLIOS_VERSION ${CMAKE_MATCH_1})
|
|
set(SPQLIOS_VERSION_MAJOR ${CMAKE_MATCH_2})
|
|
set(SPQLIOS_VERSION_MINOR ${CMAKE_MATCH_3})
|
|
set(SPQLIOS_VERSION_PATCH ${CMAKE_MATCH_4})
|
|
message(STATUS "Compiling spqlios-fft version: ${SPQLIOS_VERSION_MAJOR}.${SPQLIOS_VERSION_MINOR}.${SPQLIOS_VERSION_PATCH}")
|
|
|
|
#set(ENABLE_SPQLIOS_F128 ON CACHE BOOL "Enable float128 via libquadmath")
|
|
set(WARNING_PARANOID ON CACHE BOOL "Treat all warnings as errors")
|
|
set(ENABLE_TESTING ON CACHE BOOL "Compiles unittests and integration tests")
|
|
set(DEVMODE_INSTALL OFF CACHE BOOL "Install private headers and testlib (mainly for CI)")
|
|
|
|
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
|
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type: Release or Debug" FORCE)
|
|
endif()
|
|
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
|
|
|
if (WARNING_PARANOID)
|
|
add_compile_options(-Wall -Werror -Wno-unused-command-line-argument)
|
|
endif()
|
|
|
|
message(STATUS "CMAKE_HOST_SYSTEM_NAME: ${CMAKE_HOST_SYSTEM_NAME}")
|
|
message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
|
message(STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
|
|
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
|
|
set(X86 ON)
|
|
set(AARCH64 OFF)
|
|
else ()
|
|
set(X86 OFF)
|
|
# set(ENABLE_SPQLIOS_F128 OFF) # float128 are only supported for x86 targets
|
|
endif ()
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64)|(arm64)")
|
|
set(AARCH64 ON)
|
|
endif ()
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "(Windows)|(MSYS)")
|
|
set(WIN32 ON)
|
|
endif ()
|
|
if (WIN32)
|
|
#overrides for win32
|
|
set(X86 OFF)
|
|
set(AARCH64 OFF)
|
|
set(X86_WIN32 ON)
|
|
else()
|
|
set(X86_WIN32 OFF)
|
|
set(WIN32 OFF)
|
|
endif (WIN32)
|
|
|
|
message(STATUS "--> WIN32: ${WIN32}")
|
|
message(STATUS "--> X86_WIN32: ${X86_WIN32}")
|
|
message(STATUS "--> X86_LINUX: ${X86}")
|
|
message(STATUS "--> AARCH64: ${AARCH64}")
|
|
|
|
# compiles the main library in spqlios
|
|
add_subdirectory(spqlios)
|
|
|
|
# compiles and activates unittests and itests
|
|
if (${ENABLE_TESTING})
|
|
enable_testing()
|
|
add_subdirectory(test)
|
|
endif()
|
|
|