1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
From ea45bd18f45150638152c16668546fdd4ecfe28a Mon Sep 17 00:00:00 2001
From: eroen <eroen@occam.eroen.eu>
Date: Mon, 29 May 2017 21:09:45 +0200
Subject: [PATCH 5/5] introduce DFHACK_RUBY_DESTINATION
---
CMakeLists.txt | 2 ++
plugins/ruby/CMakeLists.txt | 8 ++++++--
plugins/ruby/ruby.cpp | 2 +-
plugins/ruby/{ruby.rb => ruby.rb.in} | 6 +++---
4 files changed, 12 insertions(+), 6 deletions(-)
rename plugins/ruby/{ruby.rb => ruby.rb.in} (97%)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96a0808f..af96f986 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -165,6 +165,8 @@ SET(DFHACK_PLUGIN_DESTINATION hack/plugins CACHE INTERNAL "")
SET(DFHACK_INCLUDES_DESTINATION hack/include)
# dfhack lua files go here:
SET(DFHACK_LUA_DESTINATION hack/lua CACHE INTERNAL "")
+# dfhack ruby files go here:
+SET(DFHACK_RUBY_DESTINATION hack/ruby CACHE INTERNAL "")
# the windows .lib file goes here:
SET(DFHACK_DEVLIB_DESTINATION hack)
diff --git a/plugins/ruby/CMakeLists.txt b/plugins/ruby/CMakeLists.txt
index 8272b5dd..ac8820f2 100644
--- a/plugins/ruby/CMakeLists.txt
+++ b/plugins/ruby/CMakeLists.txt
@@ -77,7 +77,8 @@ INCLUDE_DIRECTORIES("${dfhack_SOURCE_DIR}/depends/tthread")
DFHACK_PLUGIN(ruby ruby.cpp LINK_LIBRARIES dfhack-tinythread)
ADD_DEPENDENCIES(ruby ruby-autogen-rb)
set_property( SOURCE "ruby.cpp" APPEND PROPERTY COMPILE_DEFINITIONS
- "DFHACK_LIBRARY_DESTINATION=\"${DFHACK_LIBRARY_DESTINATION}\"" )
+ "DFHACK_LIBRARY_DESTINATION=\"${DFHACK_LIBRARY_DESTINATION}\""
+ "DFHACK_RUBY_DESTINATION=\"${DFHACK_RUBY_DESTINATION}\"")
IF(EXISTS ${RUBYLIB})
INSTALL(FILES ${RUBYLIB} DESTINATION ${DFHACK_LIBRARY_DESTINATION} RENAME ${RUBYLIB_INSTALL_NAME})
@@ -88,8 +89,11 @@ ELSE()
ENDIF()
ENDIF()
+configure_file( ruby.rb.in ruby.rb @ONLY )
INSTALL(DIRECTORY .
- DESTINATION hack/ruby
+ DESTINATION ${DFHACK_RUBY_DESTINATION}
FILES_MATCHING PATTERN "*.rb")
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ruby.rb
+ DESTINATION ${DFHACK_RUBY_DESTINATION})
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RUBYAUTOGEN} DESTINATION hack/ruby)
diff --git a/plugins/ruby/ruby.cpp b/plugins/ruby/ruby.cpp
index 6bdd74fa..069159dc 100644
--- a/plugins/ruby/ruby.cpp
+++ b/plugins/ruby/ruby.cpp
@@ -457,7 +457,7 @@ static void df_rubythread(void *p)
// load the default ruby-level definitions in the background
state=0;
- rb_eval_string_protect("require './hack/ruby/ruby'", &state);
+ rb_eval_string_protect("require '" DFHACK_RUBY_DESTINATION "/ruby'", &state);
if (state)
dump_rb_error();
diff --git a/plugins/ruby/ruby.rb b/plugins/ruby/ruby.rb.in
similarity index 97%
rename from plugins/ruby/ruby.rb
rename to plugins/ruby/ruby.rb.in
index c696c23e..62be24c5 100644
--- a/plugins/ruby/ruby.rb
+++ b/plugins/ruby/ruby.rb.in
@@ -251,8 +251,8 @@ def df
end
# load autogenned file
-require './hack/ruby/ruby-autogen-defs'
-require(RUBY_PLATFORM =~ /mswin|mingw|cygwin/i ? './hack/ruby/ruby-autogen-win' : './hack/ruby/ruby-autogen-gcc')
+require '@DFHACK_RUBY_DESTINATION@/ruby-autogen-defs'
+require(RUBY_PLATFORM =~ /mswin|mingw|cygwin/i ? '@DFHACK_RUBY_DESTINATION@/ruby-autogen-win' : '@DFHACK_RUBY_DESTINATION@/ruby-autogen-gcc')
# load all modules
-Dir['./hack/ruby/*.rb'].each { |m| require m.chomp('.rb') if m !~ /ruby-autogen/ }
+Dir['@DFHACK_RUBY_DESTINATION@/*.rb'].each { |m| require m.chomp('.rb') if m !~ /ruby-autogen/ }
--
2.13.0
|