Premake doesn't picking up dependencies
<p>Recently I've changed from CMake to Premake (v5.0.0-alpha8) and I'm not quite sure how to achieve the the following in Premake.</p>

<p>I want to include some dependencies so in CMake I can do something like this:</p>

<pre><code>target_link_libraries(${PROJECT_NAME} 
    ${YALLA_ABS_PLATFORM}
    ${YALLA_LIBRARY})
</code></pre>

<p>The above will add the paths of these libraries (dir) to "Additional Include Directories" in the compiler and it will also add an entry (lib) to "Additional Dependencies" in the linker so I don't need to do anything special beyond calling <code>target_link_libraries</code>.</p>

<p>So I expected that when I'm doing something like this in Premake:</p>

<pre><code>links {
    YALLA_LIBRARY
}
</code></pre>

<p>I'd get the same result but I don't.</p>

<p>I also tried to use the <code>libdirs</code> but it doesn't really <em>work</em>, I mean I can't see the library directory and its subdirectories passed to the compiler as "Additional Include Directories" (/I) or Yalla.Library.lib passed to the the linker as "Additional Dependencies".</p>

<p><strong>Here is the directory structure I use:</strong></p>

<pre><code>.
|-- src
|   |-- launcher
|   |-- library
|   |   `-- utils
|   `-- platform
|       |-- abstract
|       `-- win32
`-- tests
    `-- platform
        `-- win32
</code></pre>

<p>The <strong>library</strong> dir is defined in Premake as follow:</p>

<pre><code>project(YALLA_LIBRARY)
    kind "SharedLib"

    files {
        "utils/string-converter.hpp",
        "utils/string-converter.cpp",
        "defines.hpp"
    }
</code></pre>

<p>The <strong>platform</strong> dir is defined in Premake as follow:</p>

<pre><code>project(YALLA_PLATFORM)
    kind "SharedLib"
    includedirs "abstract"

    links {
        YALLA_LIBRARY
    }

    if os.get() == "windows" then
        include     "win32"
    else
        return -- OS NOT SUPPORTED
    end
</code></pre>

<p>The <strong>win32</strong> dir is defined in Premake as follow:</p>

<pre><code>files {
    "event-loop.cpp",
    "win32-exception.cpp",
    "win32-exception.hpp",
    "win32-window.cpp",
    "win32-window.hpp",
    "window.cpp"
}
</code></pre>

<p>And finally at the <strong>root</strong> dir I have the following Premake file:</p>

<pre><code>PROJECT_NAME = "Yalla"

-- Sets global constants that represents the projects' names
YALLA_LAUNCHER = PROJECT_NAME .. ".Launcher"
YALLA_LIBRARY = PROJECT_NAME .. ".Library"
YALLA_ABS_PLATFORM = PROJECT_NAME .. ".AbstractPlatform"
YALLA_PLATFORM = PROJECT_NAME .. ".Platform"

workspace(PROJECT_NAME)
    configurations  { "Release", "Debug" }
    flags           { "Unicode" }

    startproject    ( YALLA_LAUNCHER )
    location        ( "../lua_build" )

    include         "src/launcher"
    include         "src/library"
    include         "src/platform"
</code></pre>

<p>I'm probably misunderstanding how Premake works due to lack of experience with it.</p>