diff options
author | Jason Perkins <starkos@industriousone.com> | 2013-08-20 18:47:23 +0400 |
---|---|---|
committer | Jason Perkins <starkos@industriousone.com> | 2013-08-20 18:47:23 +0400 |
commit | a85980c52496306f8f4ac885a3e9da81d0c7179d (patch) | |
tree | f9182635fd1fad14ec9cb39c97ec58f595076aba | |
parent | 55a0c026fceee2bdaa182d9b816e608c0ae10e9b (diff) |
Find PCH on include dirs even if project has a location set
-rw-r--r-- | src/actions/make/make_cpp.lua | 6 | ||||
-rw-r--r-- | tests/actions/make/test_make_pch.lua | 17 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/actions/make/make_cpp.lua b/src/actions/make/make_cpp.lua index 2b2c763..b3630f2 100644 --- a/src/actions/make/make_cpp.lua +++ b/src/actions/make/make_cpp.lua @@ -305,7 +305,11 @@ local pch = cfg.pchheader for _, incdir in ipairs(cfg.includedirs) do - local testname = path.join(incdir, pch) + + -- convert this back to an absolute path for os.isfile() + local abspath = path.getabsolute(path.join(cfg.project.location, incdir)) + + local testname = path.join(abspath, pch) if os.isfile(testname) then pch = path.getrelative(cfg.location, testname) break diff --git a/tests/actions/make/test_make_pch.lua b/tests/actions/make/test_make_pch.lua index 75d9d9d..4664661 100644 --- a/tests/actions/make/test_make_pch.lua +++ b/tests/actions/make/test_make_pch.lua @@ -85,6 +85,7 @@ $(GCH): $(PCH) ]] end + -- -- Ensure that PCH is included on all files that use it. -- @@ -101,3 +102,19 @@ $(OBJDIR)/main.o: main.cpp ]] end + +-- +-- If the header is located on one of the include file +-- search directories, it should get found automatically. +-- + + function suite.findsPCH_onIncludeDirs() + location "MyProject" + pchheader "premake.h" + includedirs { "../src/host" } + prepare() + _.pchconfig(cfg) + test.capture [[ + PCH = ../../src/host/premake.h + ]] + end |