最近、私はCMakeからPremake(v5.0.0-alpha8)に変更しました。私はPremakeで以下のことを達成する方法がはっきりしていません。私はこのような何かを行うことができますCMakeのではので、いくつかの依存関係を含めたいPremakeが依存関係を拾わない
:上記
target_link_libraries(${PROJECT_NAME}
${YALLA_ABS_PLATFORM}
${YALLA_LIBRARY})
は、コンパイラで「追加のインクルードディレクトリ」に、これらのライブラリー(DIR)のパスを追加し、それだろうリンカーの「Additional Dependencies」にもエントリ(lib)が追加されますので、特別な処理は必要ありません。target_link_libraries
を呼び出してください。
だから、私はPremakeでこのような何かやっているときと予想さ:
links {
YALLA_LIBRARY
}
を、私は同じ結果を得るだろうが、私はしないでください。
は、私はまた、libdirs
を使用しようとしましたが、それは、私がライブラリディレクトリとそのサブディレクトリには、「追加のインクルードディレクトリ」としてコンパイラに渡さ見ることができないではない、本当に
仕事意味は(/ I)またはYalla .Library.libは "追加の依存関係"としてリンカーに渡されます。
プラットフォーム dirはとPremakeに定義されている
project(YALLA_LIBRARY)
kind "SharedLib"
files {
"utils/string-converter.hpp",
"utils/string-converter.cpp",
"defines.hpp"
}
:ライブラリ dirは次のようにPremakeに定義されている
.
|-- src
| |-- launcher
| |-- library
| | `-- utils
| `-- platform
| |-- abstract
| `-- win32
`-- tests
`-- platform
`-- win32
:ここ
は、私が使用してディレクトリ構造であります続く:
project(YALLA_PLATFORM)
kind "SharedLib"
includedirs "abstract"
links {
YALLA_LIBRARY
}
if os.get() == "windows" then
include "win32"
else
return -- OS NOT SUPPORTED
end
win32の DIRは、以下のようPremakeで定義されています
files {
"event-loop.cpp",
"win32-exception.cpp",
"win32-exception.hpp",
"win32-window.cpp",
"win32-window.hpp",
"window.cpp"
}
そして最後にルートディレクトリで私は、次のPremakeファイルがあります。
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"
を私はおそらくどのように誤解していますPremakeは、経験が不足しているために動作します。