diff options
Diffstat (limited to 'user/muparser/muparser-buildsystem.patch')
-rw-r--r-- | user/muparser/muparser-buildsystem.patch | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/user/muparser/muparser-buildsystem.patch b/user/muparser/muparser-buildsystem.patch new file mode 100644 index 000000000..bd7faa991 --- /dev/null +++ b/user/muparser/muparser-buildsystem.patch @@ -0,0 +1,114 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..3912058 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,91 @@ ++# CMake based on work from @xantares ++cmake_minimum_required(VERSION 3.1) ++project(muParserProject) ++ ++include(CTest) ++enable_testing() ++ ++# Bump versions on release ++set(MUPARSER_VERSION_MAJOR 2) ++set(MUPARSER_VERSION_MINOR 2) ++set(MUPARSER_VERSION_PATCH 5) ++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" OFF) ++ ++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() ++ ++include_directories("${CMAKE_SOURCE_DIR}/include") ++add_library(muparser ++ src/muParserBase.cpp ++ src/muParserBytecode.cpp ++ src/muParserCallback.cpp ++ src/muParser.cpp ++ src/muParserDLL.cpp ++ src/muParserError.cpp ++ src/muParserInt.cpp ++ src/muParserTest.cpp ++ src/muParserTokenReader.cpp ++) ++target_compile_definitions(muparser PRIVATE MUPARSERLIB_EXPORTS) ++if(ENABLE_OPENMP) ++ target_compile_definitions(muparser PRIVATE MUP_USE_OPENMP) ++endif() ++set_target_properties(muparser PROPERTIES ++ VERSION ${MUPARSER_VERSION} ++ SOVERSION ${MUPARSER_VERSION_MAJOR} ++) ++ ++# Install the export set for use with the install-tree ++export(TARGETS muparser FILE "${CMAKE_BINARY_DIR}/muparser-targets.cmake") ++ ++if(ENABLE_SAMPLES) ++ # the C example does not compile at the moment, because definitions must be ++ # inside external "C" { } to avoid name mangling. ++ #add_executable(example2 samples/example2/example2.c) ++ #target_link_libraries(example2 muparser) ++ ++ add_executable(example1 samples/example1/example1.cpp) ++ target_link_libraries(example1 muparser) ++ add_test(base example1) ++endif() ++ ++install(TARGETS muparser DESTINATION lib) ++install(FILES ++ include/muParserBase.h ++ include/muParserBytecode.h ++ include/muParserCallback.h ++ include/muParserDef.h ++ include/muParserDLL.h ++ include/muParserError.h ++ include/muParserFixes.h ++ include/muParser.h ++ include/muParserInt.h ++ include/muParserStack.h ++ include/muParserTemplateMagic.h ++ include/muParserTest.h ++ include/muParserToken.h ++ include/muParserTokenReader.h ++ DESTINATION include ++) ++ ++# Define variables for the pkg-config file ++# The GNUInstallDirs defines ${CMAKE_INSTALL_DATAROOTDIR} ++# See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html ++include(GNUInstallDirs) ++set(PACKAGE_NAME muparser) ++configure_file( ++ "${CMAKE_SOURCE_DIR}/build/autoconf/muparser.pc.cmakein" ++ "${CMAKE_BINARY_DIR}/muparser.pc" ++ @ONLY ++) ++install( ++ FILES "${CMAKE_BINARY_DIR}/muparser.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ++) +diff --git a/build/autoconf/muparser.pc.cmakein b/build/autoconf/muparser.pc.cmakein +new file mode 100644 +index 0000000..be535ff +--- /dev/null ++++ b/build/autoconf/muparser.pc.cmakein +@@ -0,0 +1,11 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=${prefix} ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++ ++Name: @PACKAGE_NAME@ ++Description: Mathematical expressions parser library ++Version: @MUPARSER_VERSION@ ++Requires: ++Libs: -L${libdir} -lmuparser ++Cflags: -I${includedir} |