Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 8 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
include(DefaultOptions)
include(ConfigureVcpkg)

Expand Down Expand Up @@ -163,25 +163,19 @@ IF(NOT MR_EMSCRIPTEN)
if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.0)
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
endif()
find_package(jsoncpp)
IF(NOT JsonCpp_FOUND)
find_package(jsoncpp QUIET)
IF(NOT TARGET JsonCpp::JsonCpp)
find_package(PkgConfig REQUIRED)
pkg_check_modules(jsoncpp REQUIRED IMPORTED_TARGET jsoncpp)
IF(CMAKE_VERSION VERSION_LESS 3.18)
set_target_properties(PkgConfig::jsoncpp PROPERTIES IMPORTED_GLOBAL TRUE)
ENDIF()
add_library(JsonCpp::JsonCpp ALIAS PkgConfig::jsoncpp)
ENDIF()
ENDIF()
ENDIF()

find_package(fmt)
find_package(spdlog REQUIRED)
find_package(TBB REQUIRED)
IF(spdlog_VERSION VERSION_GREATER_EQUAL "1.7" AND fmt_VERSION VERSION_GREATER_EQUAL "7.0")
add_compile_definitions(SPDLOG_FMT_EXTERNAL)
ENDIF()
add_compile_definitions(SPDLOG_COMPILED_LIB SPDLOG_SHARED_LIB)
find_package(fmt 8 REQUIRED)
find_package(spdlog 1.9 REQUIRED)
find_package(TBB 2020.1 REQUIRED)
add_compile_definitions(SPDLOG_COMPILED_LIB SPDLOG_SHARED_LIB SPDLOG_FMT_EXTERNAL)
ENDIF() # NOT MR_EMSCRIPTEN

include_directories(${MESHLIB_THIRDPARTY_DIR}/parallel-hashmap)
Expand Down
44 changes: 0 additions & 44 deletions cmake/Modules/ConfigureCuda.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
IF(NOT CUDAToolkit_FOUND AND NOT CUDA_FOUND)
IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

IF(WIN32)
# For some reason setting C++20 on Windows appears to be ignored, so that even
# the single-argument version of `static_assert` doesn't compile (which is a C++17 feature).
Expand Down Expand Up @@ -42,44 +38,4 @@ IF(NOT CUDAToolkit_FOUND AND NOT CUDA_FOUND)
ENDIF()

set(CUDART_LIBRARY CUDA::cudart_static)
ELSE()
# nvcc supports only c++20 and Cmake 3.16 from Ubuntu 20 does not support set(CMAKE_CUDA_STANDARD 20)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# more info: https://gitlab.kitware.com/cmake/cmake/-/issues/23079
IF(NOT DEFINED CMAKE_CUDA20_STANDARD_COMPILE_OPTION)
set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20")
set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20")
ENDIF()

set(CUDA_TOOLKIT_ROOT_DIR "/usr/local/cuda/")
set(CMAKE_CUDA_PATH /usr/local/cuda/)
set(CUDA_NVCC_EXECUTABLE ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc)
set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc)

# without it we get "nvcc warning : The -std=c++20 flag is not supported with the configured host compiler. Flag will be ignored."
# https://stackoverflow.com/q/77170793/7325599
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
message("CMAKE_CXX_COMPILER=CMAKE_CUDA_HOST_COMPILER=${CMAKE_CUDA_HOST_COMPILER}")

# If the following line gives you this error: Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE) (found suitable version "12.1", minimum required is "12")
# That's because you ran this file twice. Make sure it runs at most once.
find_package(CUDA 12 REQUIRED)

set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} \
--std c++20 \
-use_fast_math \
-arch=sm_52 \
-gencode=arch=compute_52,code=sm_52 \
-gencode=arch=compute_60,code=sm_60 \
-gencode=arch=compute_61,code=sm_61 \
-gencode=arch=compute_70,code=sm_70 \
-gencode=arch=compute_75,code=sm_75 \
-gencode=arch=compute_75,code=compute_75"
)
set(CUDA_VERBOSE_BUILD ON)

set(CUDART_LIBRARY ${CUDA_LIBRARIES})
ENDIF()
ENDIF()
3 changes: 0 additions & 3 deletions cmake/Modules/ConfigureHip.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_HIP_STANDARD 20)
set(CMAKE_HIP_STANDARD_REQUIRED ON)

Expand Down
2 changes: 1 addition & 1 deletion examples/c-examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)

project(cmake-c-examples C)

Expand Down
2 changes: 1 addition & 1 deletion examples/cpp-examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Expand Down
2 changes: 1 addition & 1 deletion examples/cpp-samples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Expand Down
4 changes: 2 additions & 2 deletions scripts/build_source.sh
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ if [ "${MESHLIB_BUILD_RELEASE}" = "ON" ]; then
mkdir -p build/Release
fi
cd build/Release
cmake -S ../.. -B . -D CMAKE_BUILD_TYPE=Release ${MR_CMAKE_OPTIONS} | tee ${logfile}
cmake -S ../.. -B . -D CMAKE_BUILD_TYPE=Release ${MR_CMAKE_OPTIONS} $@ | tee ${logfile}
cmake --build . -j ${NPROC} | tee ${logfile}
cd ../..
fi
Expand All @@ -155,7 +155,7 @@ if [ "${MESHLIB_BUILD_DEBUG}" = "ON" ]; then
mkdir -p build/Debug
fi
cd build/Debug
cmake -S ../.. -B . -D CMAKE_BUILD_TYPE=Debug ${MR_CMAKE_OPTIONS} | tee ${logfile}
cmake -S ../.. -B . -D CMAKE_BUILD_TYPE=Debug ${MR_CMAKE_OPTIONS} $@ | tee ${logfile}
cmake --build . -j ${NPROC} | tee ${logfile}
cd ../..
fi
Expand Down
5 changes: 1 addition & 4 deletions scripts/install_brew_requirements.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@
# This script installs requirements by `brew` if not already installed

requirements_file=requirements/macos.txt
for req in `cat $requirements_file`
do
brew install $req
done
brew install $(cat $requirements_file | tr '\n' ' ')

brew install pybind11

Expand Down
4 changes: 2 additions & 2 deletions source/EditableProject/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project EditableProject CXX)
project(EditableProject CXX)

file(GLOB_RECURSE SOURCES "*.cpp")
file(GLOB_RECURSE HEADERS "*.h")
Expand Down
4 changes: 0 additions & 4 deletions source/MRCommonPlugins/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRCommonPlugins CXX)

file(GLOB_RECURSE SOURCES "*.cpp")
Expand Down
2 changes: 0 additions & 2 deletions source/MRCuda/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)

IF(MESHLIB_EXPERIMENTAL_HIP)
project(MRCuda CXX HIP)
ELSE()
Expand Down
5 changes: 0 additions & 5 deletions source/MREmbeddedPython/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MREmbeddedPython CXX)

file(GLOB SOURCES "*.cpp")
Expand Down Expand Up @@ -65,7 +61,6 @@ IF(WIN32)
file(COPY ${MESHLIB_THIRDPARTY_DIR}/python/python${Python_VERSION_MAJOR}${Python_VERSION_MINOR}.zip DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
ENDIF()

set(CMAKE_INSTALL_PREFIX "/Library/Frameworks")
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}
Expand Down
5 changes: 0 additions & 5 deletions source/MRIOExtras/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRIOExtras CXX)

option(MRIOEXTRAS_NO_3MF "Disable 3MF support" OFF)
Expand Down Expand Up @@ -194,7 +190,6 @@ ELSE()
)
ENDIF()

set(CMAKE_INSTALL_PREFIX "/Library/Frameworks")
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}
Expand Down
2 changes: 1 addition & 1 deletion source/MRIOExtras/MRPdf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ std::string Pdf::Cell::toString( const std::string& fmtStr /*= "{}"*/ ) const
if constexpr ( std::is_same_v<T, Empty> )
return "";
else
return fmt::format( runtimeFmt( fmtStr ), val );
return fmt::format( fmt::runtime( fmtStr ), val );
}, data );
}

Expand Down
6 changes: 1 addition & 5 deletions source/MRMesh/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRMesh CXX)

option(MRMESH_NO_TIFF "Disable TIFF support" OFF)
Expand Down Expand Up @@ -56,7 +52,7 @@ IF(EMSCRIPTEN)
ENDIF()

IF(NOT MR_EMSCRIPTEN)
find_package(Boost COMPONENTS REQUIRED)
find_package(Boost 1.73 CONFIG REQUIRED)
ELSE()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s USE_BOOST_HEADERS=1")
ENDIF()
Expand Down
2 changes: 2 additions & 0 deletions source/MRMesh/MRGTest.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#pragma once

#include "config.h"

#ifdef MRMESH_NO_GTEST

#undef TEST
Expand Down
4 changes: 0 additions & 4 deletions source/MRMeshC/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRMeshC CXX)

file(GLOB SOURCES "*.cpp")
Expand Down
8 changes: 2 additions & 6 deletions source/MRPch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRPch CXX)

option(MR_PCH_USE_EXTRA_HEADERS "Add frequently used MeshLib headers to the precompiled header" OFF)
Expand Down Expand Up @@ -29,7 +25,7 @@ IF(MR_PCH)
tbb
)
ELSEIF(WIN32 OR MESHLIB_USE_VCPKG)
find_package(Boost COMPONENTS REQUIRED)
find_package(Boost 1.73 CONFIG REQUIRED)
find_package(Eigen3 REQUIRED)

add_library(${PROJECT_NAME} STATIC "MRPch.cpp" ${HEADERS})
Expand All @@ -43,7 +39,7 @@ IF(MR_PCH)
TBB::tbb
)
ELSE()
find_package(Boost COMPONENTS REQUIRED)
find_package(Boost 1.73 CONFIG REQUIRED)
include_directories(${jsoncpp_INCLUDE_DIRS})

add_library(${PROJECT_NAME} STATIC "MRPch.cpp" ${HEADERS})
Expand Down
8 changes: 1 addition & 7 deletions source/MRPch/MRFmt.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@

namespace MR
{
#if FMT_VERSION < 80000
MR_BIND_IGNORE inline std::string_view runtimeFmt( std::string_view str )
{
return str;
}
#else
[[deprecated( "Use fmt::runtime" )]]
MR_BIND_IGNORE inline auto runtimeFmt( std::string_view str )
{
return fmt::runtime( str );
}
#endif
}
5 changes: 0 additions & 5 deletions source/MRPython/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRPython CXX)

file(GLOB SOURCES "*.cpp")
Expand Down Expand Up @@ -70,7 +66,6 @@ IF(MR_PCH)
target_precompile_headers(${PROJECT_NAME} REUSE_FROM MRPch)
ENDIF()

set(CMAKE_INSTALL_PREFIX "/Library/Frameworks")
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}
Expand Down
7 changes: 1 addition & 6 deletions source/MRSymbolMesh/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRSymbolMesh CXX)

file(GLOB SOURCES "*.cpp")
Expand All @@ -27,7 +23,7 @@ ELSEIF(APPLE)
target_link_libraries(${PROJECT_NAME} PRIVATE
MRMesh
Freetype::Freetype
PkgConfig::jsoncpp
JsonCpp::JsonCpp
fmt
spdlog
tbb
Expand All @@ -52,7 +48,6 @@ ELSE()
)
ENDIF()

set(CMAKE_INSTALL_PREFIX "/Library/Frameworks")
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}
Expand Down
4 changes: 0 additions & 4 deletions source/MRTest/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRTest CXX)

file(GLOB SOURCES "*.cpp")
Expand Down
4 changes: 0 additions & 4 deletions source/MRTestC/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

project(MRTestC C)

file(GLOB HEADERS "*.h")
Expand Down
4 changes: 0 additions & 4 deletions source/MRTestC2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

project(MRTestC2 C)

file(GLOB HEADERS "*.h")
Expand Down
4 changes: 0 additions & 4 deletions source/MRTestCuda/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRTestCuda CXX)

file(GLOB SOURCES "*.cpp")
Expand Down
4 changes: 0 additions & 4 deletions source/MRViewer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MRViewer CXX)

option(MRVIEWER_NO_GTK "Disable GTK support (affects file dialog support on Linux)" OFF)
Expand Down
2 changes: 1 addition & 1 deletion source/MRViewer/MRUnits.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ static std::string valueToStringImpl( T value, const UnitToStringParams<E>& para
ret += unitSuffix;

if ( params.decorationFormatString != "{}" )
return fmt::format( runtimeFmt( params.decorationFormatString ), ret );
return fmt::format( fmt::runtime( params.decorationFormatString ), ret );
else
return ret;
}
Expand Down
4 changes: 0 additions & 4 deletions source/MRViewerApp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_CXX_STANDARD ${MR_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(MeshViewer CXX)

add_executable(${PROJECT_NAME} WIN32 MRViewerApp.cpp)
Expand Down
Loading
Loading