代码拉取完成,页面将自动刷新
同步操作将从 mirrors_beltoforion/muparser 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# CMake based on work from @xantares
cmake_minimum_required (VERSION 3.1.0)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# By default, build in Release mode. Must appear before project() command
if (NOT DEFINED CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
endif ()
project(muParserProject)
# Bump versions on release
set(MUPARSER_VERSION_MAJOR 2)
set(MUPARSER_VERSION_MINOR 3)
set(MUPARSER_VERSION_PATCH 3)
set(MUPARSER_VERSION ${MUPARSER_VERSION_MAJOR}.${MUPARSER_VERSION_MINOR}.${MUPARSER_VERSION_PATCH})
# Build options
option(ENABLE_SAMPLES "Build the samples" ON)
option(ENABLE_OPENMP "Enable OpenMP for multithreading" ON)
option(ENABLE_WIDE_CHAR "Enable wide character support" OFF)
option(BUILD_SHARED_LIBS "Build shared/static libs" ON)
if(ENABLE_OPENMP)
find_package(OpenMP REQUIRED)
set(CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "${OpenMP_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}")
endif()
# Credit: https://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake/3818084
if(MSVC)
# Force to always compile with W4
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
endif()
elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
# Update if necessary
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
endif()
FILE(GLOB_RECURSE MUPARSER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") #all .cpp
add_library(muparser ${MUPARSER_SOURCES})
# Use the headers in the build-tree or the installed ones
target_include_directories(muparser PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
# This compiles the "DLL" interface (C API)
target_compile_definitions(muparser PRIVATE MUPARSER_DLL)
if (BUILD_SHARED_LIBS)
target_compile_definitions(muparser PRIVATE MUPARSERLIB_EXPORTS)
add_definitions( -DMUPARSERLIB_EXPORTS )
else ()
target_compile_definitions(muparser PUBLIC MUPARSER_STATIC)
add_definitions( -DMUPARSER_STATIC )
endif()
if (CMAKE_BUILD_TYPE STREQUAL Debug)
target_compile_definitions(muparser PRIVATE _DEBUG)
endif ()
if(ENABLE_OPENMP)
target_compile_definitions(muparser PRIVATE MUP_USE_OPENMP)
endif()
if(ENABLE_WIDE_CHAR)
target_compile_definitions(muparser PUBLIC _UNICODE)
endif()
set_target_properties(muparser PROPERTIES
VERSION ${MUPARSER_VERSION}
SOVERSION ${MUPARSER_VERSION_MAJOR}
)
if(ENABLE_SAMPLES)
add_executable(example1 samples/example1/example1.cpp)
target_link_libraries(example1 muparser)
add_executable(example2 samples/example2/example2.c)
target_link_libraries(example2 muparser)
endif()
# The GNUInstallDirs defines ${CMAKE_INSTALL_DATAROOTDIR}
# See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
include (GNUInstallDirs)
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/muparser)
install(TARGETS muparser
EXPORT muparser-export
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT RuntimeLibraries
)
FILE(GLOB_RECURSE MUPARSER_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") #all .h
install(FILES
${MUPARSER_HEADERS}
DESTINATION include
COMPONENT Development
)
# Export the target under the build-tree (no need to install)
export(EXPORT muparser-export
FILE "${CMAKE_BINARY_DIR}/muparser-targets.cmake"
NAMESPACE muparser::
)
# Export the installed target (typically for packaging)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/muparserConfigVersion.cmake"
VERSION ${MUPARSER_VERSION}
COMPATIBILITY AnyNewerVersion
)
configure_file(muparserConfig.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/muparserConfig.cmake"
COPYONLY
)
install(EXPORT muparser-export
FILE muparser-targets.cmake
NAMESPACE muparser::
DESTINATION ${INSTALL_CONFIGDIR}
)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/muparserConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/muparserConfigVersion.cmake
DESTINATION ${INSTALL_CONFIGDIR}
COMPONENT Development
)
# Define variables for the pkg-config file
set(PACKAGE_NAME muparser)
configure_file(
muparser.pc.in
${CMAKE_BINARY_DIR}/muparser.pc
@ONLY
)
install(
FILES ${CMAKE_BINARY_DIR}/muparser.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
include(CTest)
if (BUILD_TESTING)
add_executable (t_ParserTest test/t_ParserTest.cpp)
target_link_libraries(t_ParserTest muparser)
add_test (NAME ParserTest COMMAND t_ParserTest)
endif()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。