summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-02-14 23:50:09 +0800
committerruki <[email protected]>2019-02-14 17:00:54 +0800
commit5e8f7e83a6a093d683b189b4feaddde224105e43 (patch)
tree0be95ddb2df9800c47001bc456a5588fe8ae6a87
parent2b25d1300333ad47706fbcdcab4665abf6785ff1 (diff)
fix path in cmakelists
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua23
1 files changed, 14 insertions, 9 deletions
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index ada9f155b..661d778c6 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -25,7 +25,12 @@
-- imports
import("core.project.project")
--- make project info
+-- get unix path
+function _get_unix_path(filepath)
+ return (path.translate(filepath):gsub('\\', '/'))
+end
+
+-- add project info
function _add_project(cmakelists)
cmakelists:print("# project")
cmakelists:print("cmake_minimum_required(VERSION 3.3.0)")
@@ -59,21 +64,21 @@ end
function _add_target_binary(cmakelists, target)
cmakelists:print("add_executable(%s \"\")", target:name())
cmakelists:print("set_target_properties(%s PROPERTIES OUTPUT_NAME \"%s\")", target:name(), target:basename())
- cmakelists:print("set_target_properties(%s PROPERTIES RUNTIME_OUTPUT_DIRECTORY \"%s\")", target:name(), target:targetdir())
+ cmakelists:print("set_target_properties(%s PROPERTIES RUNTIME_OUTPUT_DIRECTORY \"%s\")", target:name(), _get_unix_path(target:targetdir()))
end
-- add target: static
function _add_target_static(cmakelists, target)
cmakelists:print("add_library(%s STATIC \"\")", target:name())
cmakelists:print("set_target_properties(%s PROPERTIES OUTPUT_NAME \"%s\")", target:name(), target:basename())
- cmakelists:print("set_target_properties(%s PROPERTIES ARCHIVE_OUTPUT_DIRECTORY \"%s\")", target:name(), target:targetdir())
+ cmakelists:print("set_target_properties(%s PROPERTIES ARCHIVE_OUTPUT_DIRECTORY \"%s\")", target:name(), _get_unix_path(target:targetdir()))
end
-- add target: shared
function _add_target_shared(cmakelists, target)
cmakelists:print("add_library(%s SHARED \"\")", target:name())
cmakelists:print("set_target_properties(%s PROPERTIES OUTPUT_NAME \"%s\")", target:name(), target:basename())
- cmakelists:print("set_target_properties(%s PROPERTIES LIBRARY_OUTPUT_DIRECTORY \"%s\")", target:name(), target:targetdir())
+ cmakelists:print("set_target_properties(%s PROPERTIES LIBRARY_OUTPUT_DIRECTORY \"%s\")", target:name(), _get_unix_path(target:targetdir()))
end
-- add target dependencies
@@ -92,7 +97,7 @@ end
function _add_target_sources(cmakelists, target)
cmakelists:print("target_sources(%s PRIVATE", target:name())
for _, sourcefile in ipairs(target:sourcefiles()) do
- cmakelists:print(" " .. sourcefile)
+ cmakelists:print(" " .. _get_unix_path(sourcefile))
end
cmakelists:print(")")
end
@@ -103,7 +108,7 @@ function _add_target_include_directories(cmakelists, target)
if includedirs then
cmakelists:print("target_include_directories(%s PRIVATE", target:name())
for _, includedir in ipairs(includedirs) do
- cmakelists:print(" " .. includedir)
+ cmakelists:print(" " .. _get_unix_path(includedir))
end
cmakelists:print(")")
end
@@ -111,14 +116,14 @@ function _add_target_include_directories(cmakelists, target)
if headerdirs then
cmakelists:print("target_include_directories(%s PUBLIC", target:name())
for _, headerdir in ipairs(headerdirs) do
- cmakelists:print(" " .. headerdir)
+ cmakelists:print(" " .. _get_unix_path(headerdir))
end
cmakelists:print(")")
end
-- export config header directory (deprecated)
local configheader = target:configheader()
if configheader then
- cmakelists:print("target_include_directories(%s PUBLIC %s)", target:name(), path.directory(configheader))
+ cmakelists:print("target_include_directories(%s PUBLIC %s)", target:name(), _get_unix_path(path.directory(configheader)))
end
end
@@ -194,7 +199,7 @@ function _add_target_link_directories(cmakelists, target)
if linkdirs then
cmakelists:print("target_link_directories(%s PRIVATE", target:name())
for _, linkdir in ipairs(linkdirs) do
- cmakelists:print(" " .. linkdir)
+ cmakelists:print(" " .. _get_unix_path(linkdir))
end
cmakelists:print(")")
end