summaryrefslogtreecommitdiff
blob: afea350628e98675a176a617245fe1efd57e60de (plain)
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