shmuel_levine

My Tuprules.lua and Tupdefault.lua contents

Jun 8th, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.10 KB | None | 0 0
  1. --[[ ***
  2. ** Tupdefault.lus **
  3. ]]
  4.  
  5. sources = {}
  6. test_src = {}
  7. objects = {}
  8. test_obj = {}
  9.  
  10. for index, filename in ipairs(tup.glob('*.cc')) do
  11.    if not string.find(filename, 'flycheck_') then
  12.       if not string.find(filename, 'Test%.') then
  13.          sources += filename
  14.          objects += string.gsub(filename,'%.cc$','.o')      
  15. --       library = true
  16.       else
  17. --       library = false
  18.          test_src += filename
  19.          test_obj += string.gsub(filename, '%.cc$', '.o')
  20.       end
  21.    end
  22. end
  23.  
  24.  
  25. compile (sources)
  26.  
  27. if (#objects) then
  28.    static_libs += archive (objects)
  29.    shared_libs += make_shared (objects)
  30. end
  31. if (#test_obj) then
  32.    test_objects += objects
  33. end
  34.  
  35.  
  36. --[[ ***
  37. ** Tuprules.lus **
  38. ]]
  39.  
  40. CCACHE = 'ccache '
  41. CXX = 'clang++ '
  42. AR = 'ar'
  43. LD = 'gold'
  44.  
  45. libsBase = tup.getcwd() .. '/libs/'
  46.  
  47. INCLUDE = {
  48.    "-I" .. libsBase .. "core",
  49.    "-I" .. libsBase .. "parser"   "-I" .. libsBase .. "../../include",
  50.    "-I" .. libsBase .. "../../include/gmock/include",
  51.    "-I" .. libsBase .. "../../include/gtest/include",
  52.    "-I" .. libsBase .. "../../include/Eigen"
  53. }
  54.  
  55. CXXFLAGS = {
  56.    "-std=c++11 ",
  57.    "-fPIC ",
  58.    "-Wall",
  59.    "-g",
  60.    "-O0",
  61.    "-DMKL_ILP64",
  62.    "-Qunused-arguments",
  63.    "-fcolor-diagnostics",
  64.    " "   .. tostring(INCLUDE)
  65. }
  66.  
  67. compile_command = ' ' .. CCACHE .. ' ' .. CXX .. ' ' .. table.concat(CXXFLAGS, ' ') .. ' -c %f -o %o '
  68. archive_command = ' ' .. AR .. ' crs %o %f'
  69.  
  70. function compile (sources)
  71.    local my_objects = {}
  72.    for index, filename in ipairs (sources) do
  73.       new_obj += tup.frule{
  74.          inputs = {filename},
  75.          command = compile_command,
  76.          outputs = {'%B.o'}
  77.       }
  78.       my_objects += new_obj
  79.    end
  80.    return my_objects
  81. end
  82.  
  83.  
  84. function archive (objects)
  85.    -- !lib = |> $(AR) crs %o %f |> lib%d.a |  $(LIB_DIR)/<libs>
  86.    return tup.frule{
  87.       inputs = objects,
  88.       command = archive_command,
  89.       outputs = {'lib%d.a'}
  90.    }
  91.    
  92. end
  93.  
  94. function make_shared (objects)
  95. -- !slib = |> $(CXX) -shared -o %o %f -Wl,-soname,lib%d.so |> $(LIB_DIR)/../../lib/lib%d.so | $(LIB_DIR)/<dyn_libs>
  96. end
Advertisement
Add Comment
Please, Sign In to add comment