2020-07-11 13:45:30 +08:00
|
|
|
################################################################################
|
|
|
|
# Resources that must be packaged into the python tree
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
add_custom_target(NPCOMPPythonResources)
|
|
|
|
add_custom_command(
|
|
|
|
TARGET NPCOMPPythonResources
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
|
# TODO: Make the runtime library work for windows.
|
|
|
|
${CMAKE_BINARY_DIR}/lib/runtime/libNPCOMPCompilerRuntimeShlib.so
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/npcomp/compiler/backend/refjit_resources/libNPCOMPCompilerRuntimeShlib.so
|
|
|
|
)
|
|
|
|
add_dependencies(NPCOMPPythonResources
|
|
|
|
NPCOMPCompilerRuntimeShlib
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2020-04-27 06:50:23 +08:00
|
|
|
################################################################################
|
|
|
|
# Manage python source files
|
|
|
|
################################################################################
|
|
|
|
function (create_symlinks)
|
|
|
|
# Do nothing if building in-source
|
|
|
|
if (${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
return()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
foreach (path_file ${ARGN})
|
|
|
|
get_filename_component(folder ${path_file} PATH)
|
|
|
|
|
|
|
|
# Create REAL folder
|
|
|
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${folder}")
|
|
|
|
|
|
|
|
# Delete symlink if it exists
|
|
|
|
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/${path_file}")
|
|
|
|
|
|
|
|
# Get OS dependent path to use in `execute_process`
|
|
|
|
file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${path_file}" link)
|
|
|
|
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${path_file}" target)
|
|
|
|
|
|
|
|
if (UNIX)
|
|
|
|
set(command ln -s ${target} ${link})
|
|
|
|
else()
|
|
|
|
set(command cmd.exe /c mklink ${link} ${target})
|
|
|
|
endif()
|
|
|
|
|
2020-07-11 13:45:30 +08:00
|
|
|
execute_process(COMMAND ${command}
|
2020-04-27 06:50:23 +08:00
|
|
|
RESULT_VARIABLE result
|
|
|
|
ERROR_VARIABLE output)
|
|
|
|
|
|
|
|
if (NOT ${result} EQUAL 0)
|
|
|
|
message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
endforeach(path_file)
|
|
|
|
endfunction(create_symlinks)
|
|
|
|
|
|
|
|
file(GLOB_RECURSE python_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.py)
|
|
|
|
create_symlinks(${python_files})
|