@@ -3,18 +3,33 @@ cmake_minimum_required (VERSION 3.26)
33set (CMAKE_CXX_STANDARD 17)
44set (CMAKE_CXX_STANDARD_REQUIRED ON )
55
6- # The Ruby extension is a shared library
6+ # Setup ruby extension
77project (BitmapPlusPlus LANGUAGES CXX)
88add_library (${CMAKE_PROJECT_NAME} SHARED)
99
10+ # Link to Rice git repo
11+ include (FetchContent)
12+ FetchContent_Declare(
13+ rice
14+ GIT_REPOSITORY https://github.com/ruby-rice/rice.git
15+ GIT_TAG dev
16+ )
17+ FetchContent_MakeAvailable(rice)
18+
19+ # Use FindRuby.cmake from Rice repo for now while upstream is being updated to support
20+ # the new Ruby targets
21+ list (PREPEND CMAKE_MODULE_PATH "${rice_SOURCE_DIR} " )
22+
1023# Find Ruby
11- # find_package(Ruby REQUIRED)
12- include ( "../../rice/FindRuby.cmake" )
13- target_include_directories ( ${CMAKE_PROJECT_NAME} PRIVATE ${Ruby_INCLUDE_DIR} ${Ruby_CONFIG_INCLUDE_DIR} )
14- target_link_libraries ( ${CMAKE_PROJECT_NAME} PRIVATE ${Ruby_LIBRARY} )
24+ find_package (Ruby REQUIRED)
25+ target_link_libraries ( ${CMAKE_PROJECT_NAME} PRIVATE
26+ Ruby::Module
27+ )
1528
1629# Rice headers
17- target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE "../../rice" )
30+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE
31+ rice::rice
32+ )
1833
1934# BitmapPlusPlus.hpp headers
2035target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE .)
@@ -23,7 +38,7 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE .)
2338get_target_property (RUBY_EXT_SUFFIX Ruby::Ruby INTERFACE_RUBY_EXTENSION_SUFFIX)
2439set_target_properties (${CMAKE_PROJECT_NAME} PROPERTIES
2540 PREFIX ""
26- SUFFIX "${RUBY_EXT_SUFFIX} "
41+ # SUFFIX "${RUBY_EXT_SUFFIX}"
2742 OUTPUT_NAME "bitmap_plus_plus_ruby"
2843 CXX_VISIBILITY_PRESET hidden
2944 VISIBILITY_INLINES_HIDDEN ON
@@ -34,4 +49,4 @@ set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
3449# Source code
3550target_sources (${CMAKE_PROJECT_NAME} PRIVATE
3651 "${CMAKE_PROJECT_NAME} -rb.hpp"
37- "${CMAKE_PROJECT_NAME} -rb.cpp" )
52+ "${CMAKE_PROJECT_NAME} -rb.cpp" )
0 commit comments