@@ -114,9 +114,17 @@ else()
114
114
# install DiscoPoP python modules
115
115
find_package (Python3 REQUIRED COMPONENTS Interpreter )
116
116
117
+ # setup DiscoPoP venv
118
+ message (STATUS "Setting up DiscoPoP python venv: ${DiscoPoP_SOURCE_DIR} /venv" )
119
+ execute_process (
120
+ COMMAND ${Python3_EXECUTABLE} -m venv ${DiscoPoP_SOURCE_DIR} /venv
121
+ )
122
+ set (Python3_VENV_EXECUTABLE ${DiscoPoP_SOURCE_DIR} /venv/bin/python3 )
123
+
124
+
117
125
# check if python tkinter module is available
118
126
execute_process (
119
- COMMAND ${Python3_EXECUTABLE } -c "import tkinter"
127
+ COMMAND ${Python3_VENV_EXECUTABLE } -c "import tkinter"
120
128
RESULT_VARIABLE TKINTER_AVAILABLE_EXIT_CODE
121
129
)
122
130
if (${TKINTER_AVAILABLE_EXIT_CODE} )
@@ -126,12 +134,35 @@ else()
126
134
# install DiscoPoP python modules
127
135
message (STATUS "Installing DiscoPoP python modules" )
128
136
execute_process (
129
- COMMAND ${Python3_EXECUTABLE } -m pip install ${DiscoPoP_SOURCE_DIR}
137
+ COMMAND ${Python3_VENV_EXECUTABLE } -m pip install ${DiscoPoP_SOURCE_DIR}
130
138
RESULT_VARIABLE DP_INSTALLATION_EXIT_CODE
131
139
OUTPUT_VARIABLE DP_INSTALLATION_OUTPUT
132
140
)
133
141
# check if installation of DiscoPoP Modules was successful
134
142
if (${DP_INSTALLATION_EXIT_CODE} )
135
143
message (FATAL_ERROR "${DP_INSTALLATION_OUTPUT} " )
136
144
endif ()
145
+
146
+ # create symlinks for python executables
147
+ message (STATUS "Creating symlinks for DiscoPoP python executables" )
148
+ set (DP_LOCAL_BIN_DIR "$ENV{HOME} /.local/bin" )
149
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_auto_tuner )
150
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_config_provider )
151
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_explorer )
152
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_optimizer )
153
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_patch_applicator )
154
+ execute_process (COMMAND rm -f ${DP_LOCAL_BIN_DIR} /discopop_patch_generator )
155
+ message (STATUS "--> discopop_auto_tuner" )
156
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_auto_tuner ${DP_LOCAL_BIN_DIR} /discopop_auto_tuner )
157
+ message (STATUS "--> discopop_config_provider" )
158
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_config_provider ${DP_LOCAL_BIN_DIR} /discopop_config_provider )
159
+ message (STATUS "--> discopop_explorer" )
160
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_explorer ${DP_LOCAL_BIN_DIR} /discopop_explorer )
161
+ message (STATUS "--> discopop_optimizer" )
162
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_optimizer ${DP_LOCAL_BIN_DIR} /discopop_optimizer )
163
+ message (STATUS "--> discopop_patch_applicator" )
164
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_patch_applicator ${DP_LOCAL_BIN_DIR} /discopop_patch_applicator )
165
+ message (STATUS "--> discopop_patch_generator" )
166
+ execute_process (COMMAND ln -sf ${DiscoPoP_SOURCE_DIR} /venv/bin/discopop_patch_generator ${DP_LOCAL_BIN_DIR} /discopop_patch_generator )
167
+
137
168
endif ()
0 commit comments