diff --git a/CMakeLists.txt b/CMakeLists.txt index 26b6724f..d0fa70ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ SET(GoTools_VERSION_PATCH 0) SET(GoTools_VERSION "${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH}") SET(GoTools_ABI_VERSION "${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}" CACHE INTERNAL "GoTools ABI version") +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_DEBUG_POSTFIX "d") option(BUILD_AS_SHARED_LIBRARY "Build the project as shared libraries?" OFF) diff --git a/INSTALL b/INSTALL index 0447a341..61d5c550 100644 --- a/INSTALL +++ b/INSTALL @@ -67,17 +67,13 @@ $ sudo make install Compilers ********* -The code uses certain features of the new C++ standard C++11, most notably the smart pointer -std::shared_ptr. On Linux this has been tested using GCC 4.7.3 and newer. On Windows this has been -tested using Visual Studio 2010 and newer. +The code uses certain features of the C++ standard C++14. On Linux this should be compatible with +gcc 5.0 and newer. On Windows this should be compatible with Visual Studio 2019 and newer. A set of options to control the build can be accessed in CMake (names starting with 'GoTools'). For example, you can turn on/off building the various modules by checking/unchecking GoTools_COMPILE_MODULE_. -If a C++11 compliant compiler is not available, the building process uses boost::shared_ptr instead -of std::shared_ptr. - Windows ********* @@ -236,3 +232,10 @@ export CXXFLAGS="$CXXFLAGS -I/opt/homebrew/opt/libomp/include" export LDFLAGS="$LDFLAGS -Wl,-rpath,/opt/homebrew/opt/libomp/lib -L/opt/homebrew/opt/libomp/lib -lomp" Logging and shared builds are not supported on MacOS. + +Command line steps for configuring, building and installing: +$ mkdir build_release +$ cd build_release +$ cmake ../ -G Ninja +$ cmake --build . +$ sudo cmake --install . diff --git a/README b/README index c0545664..e2f553e5 100644 --- a/README +++ b/README @@ -20,10 +20,10 @@ Newmat was written by Robert Davies, http://www.robertnz.com. Requirements: * CMake - see: www.cmake.org * Linux: Tested on the latest LTS version of Ubuntu (with a transition period, currently tested on - 22.04, using gcc version 11.4.0) on x64. It should work with older gcc versions down to 4.8, but + 22.04, using gcc version 11.4.0) on x64. It should work with older gcc versions down to 5.0, but it is not actively supported. It has been tested to run on ARM64, but it is not actively supported. -* Windows: Tested with Visual Studio 2015, 2019 and 2022 on x64. Older versions are not +* Windows: Tested with Visual Studio 2019 and 2022 on x64. Older versions are not actively supported. It has been tested to run on ARM64 (using x64 emulation), but it is not actively supported. * MacOS: We do not officially support MacOS. It has beed tested to run on ARM64, but it is not diff --git a/viewlib/CMakeLists.txt b/viewlib/CMakeLists.txt index 04a82d48..506f5cb2 100644 --- a/viewlib/CMakeLists.txt +++ b/viewlib/CMakeLists.txt @@ -327,8 +327,13 @@ set(APP_RUNTIME_DIR "${APP_BUILD_DIR}/${CONFIG_SUBDIR}") # Install everything from app/[config]/ (or app/) into install bin directory install(DIRECTORY "${APP_RUNTIME_DIR}/" DESTINATION ${CMAKE_INSTALL_BINDIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE FILES_MATCHING PATTERN "*" PATTERN ".svn" EXCLUDE + PATTERN ".pdb" EXCLUDE + PATTERN ".ilk" EXCLUDE ) #message(STATUS "Will install app runtime files from: ${APP_RUNTIME_DIR}")