summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-03-23 22:59:49 +0800
committerruki <[email protected]>2021-03-23 22:59:49 +0800
commit5a05a357b8d12669d315fbb2a0e074fb2160e62c (patch)
tree1407d6f2feafdda4f73b737a14d79dca99471ed8
parent96b335a5fe5cd6d71a79776d63fa6f3eb2fa7379 (diff)
improve cmake path
-rw-r--r--xmake/modules/target/action/install/cmake_importfiles.lua13
-rw-r--r--xmake/scripts/cmake_importfiles/xxxTargets-debug.cmake4
-rw-r--r--xmake/scripts/cmake_importfiles/xxxTargets-release.cmake4
-rw-r--r--xmake/scripts/cmake_importfiles/xxxTargets.cmake9
4 files changed, 13 insertions, 17 deletions
diff --git a/xmake/modules/target/action/install/cmake_importfiles.lua b/xmake/modules/target/action/install/cmake_importfiles.lua
index ff15deba4..7bfb5d636 100644
--- a/xmake/modules/target/action/install/cmake_importfiles.lua
+++ b/xmake/modules/target/action/install/cmake_importfiles.lua
@@ -21,22 +21,13 @@
-- imports
import("core.project.project")
--- translate path
-function _translate_path(p)
- if is_host("windows") then
- return (p:gsub("\\", "/"))
- end
- return p
-end
-
-- get the builtin variables
function _get_builtinvars(target, installdir)
return {TARGETNAME = target:name(),
PROJECTNAME = project.name() or target:name(),
- TARGETFILE = _translate_path(path.absolute(target:targetfile())),
+ TARGETFILENAME = path.filename(target:targetfile()),
TARGETKIND = target:is_shared() and "SHARED" or "STATIC",
- PACKAGE_VERSION = target:get("version") or "1.0.0",
- IMPORT_PREFIX = _translate_path(path.absolute(installdir))}
+ PACKAGE_VERSION = target:get("version") or "1.0.0"}
end
-- install cmake import file
diff --git a/xmake/scripts/cmake_importfiles/xxxTargets-debug.cmake b/xmake/scripts/cmake_importfiles/xxxTargets-debug.cmake
index f2c64cb0c..a6328bb79 100644
--- a/xmake/scripts/cmake_importfiles/xxxTargets-debug.cmake
+++ b/xmake/scripts/cmake_importfiles/xxxTargets-debug.cmake
@@ -9,11 +9,11 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
set_property(TARGET @PROJECTNAME@::@TARGETNAME@ APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(@PROJECTNAME@::@TARGETNAME@ PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "ASM_NASM;C"
- IMPORTED_LOCATION_DEBUG "@TARGETFILE@"
+ IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/@TARGETFILENAME@"
)
list(APPEND _IMPORT_CHECK_TARGETS @PROJECTNAME@::@TARGETNAME@ )
-list(APPEND _IMPORT_CHECK_FILES_FOR_@PROJECTNAME@::@TARGETNAME@ "@TARGETFILE@" )
+list(APPEND _IMPORT_CHECK_FILES_FOR_@PROJECTNAME@::@TARGETNAME@ "${_IMPORT_PREFIX}/lib/@TARGETFILENAME@" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
diff --git a/xmake/scripts/cmake_importfiles/xxxTargets-release.cmake b/xmake/scripts/cmake_importfiles/xxxTargets-release.cmake
index 153362afa..c720fb79b 100644
--- a/xmake/scripts/cmake_importfiles/xxxTargets-release.cmake
+++ b/xmake/scripts/cmake_importfiles/xxxTargets-release.cmake
@@ -9,11 +9,11 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
set_property(TARGET @PROJECTNAME@::@TARGETNAME@ APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(@PROJECTNAME@::@TARGETNAME@ PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "ASM_NASM;C"
- IMPORTED_LOCATION_RELEASE "@TARGETFILE@"
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/@TARGETFILENAME@"
)
list(APPEND _IMPORT_CHECK_TARGETS @PROJECTNAME@::@TARGETNAME@ )
-list(APPEND _IMPORT_CHECK_FILES_FOR_@PROJECTNAME@::@TARGETNAME@ "@TARGETFILE@" )
+list(APPEND _IMPORT_CHECK_FILES_FOR_@PROJECTNAME@::@TARGETNAME@ "${_IMPORT_PREFIX}/lib/@TARGETFILENAME@" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
diff --git a/xmake/scripts/cmake_importfiles/xxxTargets.cmake b/xmake/scripts/cmake_importfiles/xxxTargets.cmake
index 7a0333e24..7ade9f919 100644
--- a/xmake/scripts/cmake_importfiles/xxxTargets.cmake
+++ b/xmake/scripts/cmake_importfiles/xxxTargets.cmake
@@ -40,9 +40,14 @@ unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
-
# The installation prefix configured by this project.
-set(_IMPORT_PREFIX "@IMPORT_PREFIX@")
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+if (_IMPORT_PREFIX STREQUAL "/")
+ set(_IMPORT_PREFIX "")
+endif()
# Create imported target @PROJECTNAME@::@TARGETNAME@
add_library(@PROJECTNAME@::@TARGETNAME@ @TARGETKIND@ IMPORTED)