Python build: copy files instead of creating link (#1989)
authorMauricio Vásquez <mauriciovasquezbernal@gmail.com>
Thu, 27 Sep 2018 05:15:34 +0000 (00:15 -0500)
committeryonghong-song <ys114321@gmail.com>
Thu, 27 Sep 2018 05:15:34 +0000 (22:15 -0700)
After https://github.com/iovisor/bcc/pull/1826 version.py is generated
by cmake in order to have the __version__ define in the module. The
previous approach of installing the python module created a link between the
src and the "build" folder, hence the version.py was actually created in the
scr folder, this caused some git noise.

This comit solves that problem by copying files instead of creating a link,
then the version.py file is only created in the "build" dir.

Signed-off-by: Mauricio Vasquez B <mauriciovasquezbernal@gmail.com>
src/python/CMakeLists.txt
tests/wrapper.sh.in

index 3b9c7f8..7ce8366 100644 (file)
@@ -1,11 +1,11 @@
 # Copyright (c) PLUMgrid, Inc.
 # Licensed under the Apache License, Version 2.0 (the "License")
 
-macro(symlink_file SRC DST)
-  execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC} ${DST})
-endmacro()
+set(PYTHON_SRC __init__.py perf.py tcp.py utils.py libbcc.py table.py usdt.py)
 
-symlink_file(${CMAKE_CURRENT_SOURCE_DIR}/bcc ${CMAKE_CURRENT_BINARY_DIR}/bcc)
+foreach (PY_SRC ${PYTHON_SRC})
+  configure_file(bcc/${PY_SRC} ${CMAKE_CURRENT_BINARY_DIR}/bcc/${PY_SRC} COPYONLY)
+endforeach()
 
 if(NOT PYTHON_CMD)
   set(PYTHON_CMD "python")
index 49d49be..90b63ec 100755 (executable)
@@ -8,7 +8,7 @@ name=$1; shift
 kind=$1; shift
 cmd=$1; shift
 
-PYTHONPATH=@CMAKE_SOURCE_DIR@/src/python
+PYTHONPATH=@CMAKE_BINARY_DIR@/src/python
 LD_LIBRARY_PATH=@CMAKE_BINARY_DIR@:@CMAKE_BINARY_DIR@/src/cc
 
 ns=$name