diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a7df899952d..0d96efa402ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,10 @@ IF(APPLE) LINK_DIRECTORIES(${HOMEBREW_PREFIX}/lib) set(CPPFLAGS "-I${HOMEBREW_PREFIX}/opt/llvm/include -I${HOMEBREW_PREFIX}/include") set(LDFLAGS "-L${HOMEBREW_PREFIX}/opt/llvm/lib -Wl,-rpath,${HOMEBREW_PREFIX}/opt/llvm/lib") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -std=c++20-stdlib=libc++ -undefined dynamic_lookup -framework Cocoa -framework IOKit") # https://github.com/pybind/pybind11/issues/382 + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -std=c++20-stdlib=libc++ -framework Cocoa -framework IOKit") # https://github.com/pybind/pybind11/issues/382 + + set(BUILD_SHARED_LIBS ON) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib") ELSE() # uncomment to print compile time of each translation unit, # such print format is selected to simplify load in Excel with fields (user time, system time, command) subdivision by commas @@ -78,6 +81,10 @@ IF(APPLE) set(CMAKE_INSTALL_RPATH "@loader_path;@loader_path/..;@loader_path/../lib;@loader_path/../lib/lib;@loader_path/meshlib;${THIRDPARTY_LIB_DIR};${CMAKE_BINARY_DIR}/bin") set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(MR_PLATFORM "APPLE_${CMAKE_HOST_SYSTEM_PROCESSOR}") + + set(GTest_DIR ${THIRDPARTY_LIB_DIR}/cmake/GTest) + find_package(GTest REQUIRED CONFIG) + include_directories(${GTEST_INCLUDE_DIRS}) ELSE() # set platform dependent flags file(STRINGS /etc/os-release distro REGEX "^NAME=") diff --git a/requirements/macos.txt b/requirements/macos.txt index ad11612efb30..95b9feae1773 100644 --- a/requirements/macos.txt +++ b/requirements/macos.txt @@ -5,7 +5,6 @@ cpr fmt gdcm glfw -googletest gtkmm3 hidapi ilmbase diff --git a/source/MRMesh/CMakeLists.txt b/source/MRMesh/CMakeLists.txt index 9801902fd8ea..b76ef5aa2dd2 100644 --- a/source/MRMesh/CMakeLists.txt +++ b/source/MRMesh/CMakeLists.txt @@ -143,12 +143,12 @@ IF(APPLE OR MR_EMSCRIPTEN) #include_directories(/opt/homebrew/opt/jpeg-turbo/include) #link_directories(/opt/homebrew/opt/jpeg-turbo/lib) - IF (NOT MR_EMSCRIPTEN) - find_library(COCOA_LIBRARY Cocoa ONLY) + IF (APPLE) + find_library(COCOA_LIBRARY Cocoa ONLY) target_compile_definitions(${PROJECT_NAME} PRIVATE _GNU_SOURCE) target_link_libraries(${PROJECT_NAME} PRIVATE spdlog - gtest gtest_main + GTest::gtest zip pthread Boost::boost @@ -161,7 +161,7 @@ IF(APPLE OR MR_EMSCRIPTEN) ) ELSE() target_link_libraries(${PROJECT_NAME} PRIVATE - gtest gtest_main + gtest zip freetype pthread @@ -177,7 +177,7 @@ ELSE() fmt spdlog tinyxml2 - gtest gtest_main + gtest zip pthread Boost::boost diff --git a/source/MRTest/CMakeLists.txt b/source/MRTest/CMakeLists.txt index fe5ef7997855..3b43abb760b7 100644 --- a/source/MRTest/CMakeLists.txt +++ b/source/MRTest/CMakeLists.txt @@ -10,10 +10,12 @@ IF(MR_EMSCRIPTEN) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --emrun") ENDIF() -IF(NOT ${MR_FEDORA} AND NOT ${MR_UBUNTU22} AND NOT ${MR_EMSCRIPTEN}) +IF(APPLE) target_link_libraries(${PROJECT_NAME} PRIVATE MRMesh MRViewer + fmt + GTest::gtest spdlog mrmeshpy ) diff --git a/source/MRViewer/CMakeLists.txt b/source/MRViewer/CMakeLists.txt index efcb4e3734c2..d718211af745 100644 --- a/source/MRViewer/CMakeLists.txt +++ b/source/MRViewer/CMakeLists.txt @@ -40,6 +40,7 @@ IF(APPLE) target_compile_definitions(${PROJECT_NAME} PRIVATE _GNU_SOURCE) target_link_libraries(${PROJECT_NAME} PRIVATE MRMesh + GTest::gtest fmt tbb OpenVDB diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 9b9797c457f9..6c28bcfa474d 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -39,6 +39,8 @@ ELSE() include_directories(${FREETYPE_INCLUDE_DIRS}) IF(APPLE) target_link_libraries(imgui PRIVATE ${FREETYPE_LIBRARIES} glfw) + set(INSTALL_GTEST ON) + add_subdirectory(./googletest) ELSE() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-variable") ENDIF() diff --git a/thirdparty/googletest b/thirdparty/googletest index e2239ee6043f..b796f7d44681 160000 --- a/thirdparty/googletest +++ b/thirdparty/googletest @@ -1 +1 @@ -Subproject commit e2239ee6043f73722e7aa812a459f54a28552929 +Subproject commit b796f7d44681514f58a683a3a71ff17c94edb0c1