1- cmake_minimum_required (VERSION 3.10 )
1+ cmake_minimum_required (VERSION 3.16 )
22project (YAMLWrapper)
33
44set (CMAKE_CXX_STANDARD 17)
55set (CMAKE_POSITION_INDEPENDENT_CODE ON )
66set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
77
8- if (APPLE )
9- # Check for package managers
10- execute_process (COMMAND which brew OUTPUT_VARIABLE HOMEBREW_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE )
11- execute_process (COMMAND which port OUTPUT_VARIABLE MACPORTS_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE )
12- execute_process (COMMAND which conda OUTPUT_VARIABLE CONDA_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE )
8+ enable_testing ()
9+ include (FetchContent )
10+
11+ FetchContent_Declare (
12+ yaml-cpp
13+ GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
14+ GIT_TAG 0.8.0
15+ )
16+ FetchContent_Declare (
17+ Catch2
18+ GIT_REPOSITORY https://github.com/catchorg/Catch2.git
19+ GIT_TAG v3.5.2
20+ )
21+
22+ FetchContent_MakeAvailable (yaml-cpp)
23+ FetchContent_MakeAvailable (Catch2)
24+ add_subdirectory (tests )
25+
26+ file (COPY ${CMAKE_SOURCE_DIR} /lattice_files/
27+ DESTINATION ${CMAKE_BINARY_DIR} /lattice_files/ )
28+
29+ # if(APPLE)
30+ # # Check for package managers
31+ # execute_process(COMMAND which brew OUTPUT_VARIABLE HOMEBREW_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE)
32+ # execute_process(COMMAND which port OUTPUT_VARIABLE MACPORTS_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE)
33+ # execute_process(COMMAND which conda OUTPUT_VARIABLE CONDA_EXISTS OUTPUT_STRIP_TRAILING_WHITESPACE)
1334
14- # Error if both Homebrew and MacPorts exist
15- if (HOMEBREW_EXISTS AND MACPORTS_EXISTS)
16- message (FATAL_ERROR
17- "Both Homebrew and MacPorts detected. This can cause conflicts.\n "
18- "Please use only one package manager:\n "
19- " - Homebrew found at: ${HOMEBREW_EXISTS} \n "
20- " - MacPorts found at: ${MACPORTS_EXISTS} \n "
21- "Consider uninstalling one to avoid library conflicts."
22- )
23- endif ()
35+ # # Error if both Homebrew and MacPorts exist
36+ # if(HOMEBREW_EXISTS AND MACPORTS_EXISTS)
37+ # message(FATAL_ERROR
38+ # "Both Homebrew and MacPorts detected. This can cause conflicts.\n"
39+ # "Please use only one package manager:\n"
40+ # " - Homebrew found at: ${HOMEBREW_EXISTS}\n"
41+ # " - MacPorts found at: ${MACPORTS_EXISTS}\n"
42+ # "Consider uninstalling one to avoid library conflicts."
43+ # )
44+ # endif()
2445
25- # Set RPATH based on which package manager is found
26- set (BASE_RPATH "@executable_path/../lib;@loader_path" )
46+ # # Set RPATH based on which package manager is found
47+ # set(BASE_RPATH "@executable_path/../lib;@loader_path")
2748
28- if (HOMEBREW_EXISTS)
29- message (STATUS "Using Homebrew package manager" )
30- # Check if Apple Silicon or Intel
31- execute_process (
32- COMMAND uname -m
33- OUTPUT_VARIABLE ARCH
34- OUTPUT_STRIP_TRAILING_WHITESPACE
35- )
36- if (ARCH STREQUAL "arm64" )
37- set (CMAKE_INSTALL_RPATH "${BASE_RPATH} ;/opt/homebrew/lib" )
38- list (APPEND CMAKE_PREFIX_PATH "/opt/homebrew" )
39- else ()
40- set (CMAKE_INSTALL_RPATH "${BASE_RPATH} ;/usr/local/lib" )
41- list (APPEND CMAKE_PREFIX_PATH "/usr/local" )
42- endif ()
43- elseif (MACPORTS_EXISTS)
44- message (STATUS "Using MacPorts package manager" )
45- set (CMAKE_INSTALL_RPATH "${BASE_RPATH} ;/opt/local/lib" )
46- list (APPEND CMAKE_PREFIX_PATH "/opt/local" )
47- elseif (CONDA_EXISTS)
48- message (STATUS "Using Conda package manager" )
49- # Get conda prefix
50- execute_process (
51- COMMAND conda info --base
52- OUTPUT_VARIABLE CONDA_PREFIX
53- OUTPUT_STRIP_TRAILING_WHITESPACE
54- )
55- set (CMAKE_INSTALL_RPATH "${BASE_RPATH} ;${CONDA_PREFIX} /lib" )
56- list (APPEND CMAKE_PREFIX_PATH "${CONDA_PREFIX} " )
57- else ()
58- message (STATUS "No package manager detected, using default paths" )
59- set (CMAKE_INSTALL_RPATH "${BASE_RPATH} ;/usr/local/lib" )
60- endif ()
49+ # if(HOMEBREW_EXISTS)
50+ # message(STATUS "Using Homebrew package manager")
51+ # # Check if Apple Silicon or Intel
52+ # execute_process(
53+ # COMMAND uname -m
54+ # OUTPUT_VARIABLE ARCH
55+ # OUTPUT_STRIP_TRAILING_WHITESPACE
56+ # )
57+ # if(ARCH STREQUAL "arm64")
58+ # set(CMAKE_INSTALL_RPATH "${BASE_RPATH};/opt/homebrew/lib")
59+ # list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew")
60+ # else()
61+ # set(CMAKE_INSTALL_RPATH "${BASE_RPATH};/usr/local/lib")
62+ # list(APPEND CMAKE_PREFIX_PATH "/usr/local")
63+ # endif()
64+ # elseif(MACPORTS_EXISTS)
65+ # message(STATUS "Using MacPorts package manager")
66+ # set(CMAKE_INSTALL_RPATH "${BASE_RPATH};/opt/local/lib")
67+ # list(APPEND CMAKE_PREFIX_PATH "/opt/local")
68+ # elseif(CONDA_EXISTS)
69+ # message(STATUS "Using Conda package manager")
70+ # # Get conda prefix
71+ # execute_process(
72+ # COMMAND conda info --base
73+ # OUTPUT_VARIABLE CONDA_PREFIX
74+ # OUTPUT_STRIP_TRAILING_WHITESPACE
75+ # )
76+ # set(CMAKE_INSTALL_RPATH "${BASE_RPATH};${CONDA_PREFIX}/lib")
77+ # list(APPEND CMAKE_PREFIX_PATH "${CONDA_PREFIX}")
78+ # else()
79+ # message(STATUS "No package manager detected, using default paths")
80+ # set(CMAKE_INSTALL_RPATH "${BASE_RPATH};/usr/local/lib")
81+ # endif()
6182
62- set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
63- message (STATUS "RPATH set to: ${CMAKE_INSTALL_RPATH} " )
64- endif ()
65-
66- find_package (yaml-cpp REQUIRED )
83+ # set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
84+ # message(STATUS "RPATH set to: ${CMAKE_INSTALL_RPATH}")
85+ # endif()
6786
6887add_library (yaml_c_wrapper SHARED src/yaml_c_wrapper.cpp )
6988target_link_libraries (yaml_c_wrapper yaml-cpp )
7089
71- add_executable (yaml_reader src /yaml_reader.cpp )
72- target_link_libraries (yaml_reader yaml_c_wrapper )
90+ add_executable (yaml_reader examples /yaml_reader.cpp )
91+ target_link_libraries (yaml_reader yaml_c_wrapper )
0 commit comments