diff --git a/xmake/actions/config/configheader.lua b/xmake/actions/config/configheader.lua deleted file mode 100644 index 995bf7a1b1..0000000000 --- a/xmake/actions/config/configheader.lua +++ /dev/null @@ -1,115 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed under the Apache License, Version 2.0 (the "License"); --- you may not use this file except in compliance with the License. --- You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015-present, TBOOX Open Source Group. --- --- @author ruki --- @file configheader.lua --- - --- imports -import("core.base.option") -import("core.project.config") -import("core.project.project") - --- make configure for the given target name -function _make_for_target(target) - - -- get the target configure file - local configheader = target:configheader() - if not configheader then return end - - -- get the config prefix - local configprefix = target:configprefix() - - -- open the file - local file = _g.configfiles[configheader] or io.open(path.join(os.tmpdir(), hash.uuid4(configheader)), "w") - - -- make the head - if _g.configfiles[configheader] then file:print("") end - file:print("#ifndef %s_H", configprefix) - file:print("#define %s_H", configprefix) - file:print("") - - -- make version - local version, version_build = target:configversion() - if not version or not version_build then - local target_version, target_version_build = target:version() - if not version then - version = target_version - end - if not version_build then - version_build = target_version_build - end - end - if version then - file:print("// version") - file:print("#define %s_VERSION \"%s\"", configprefix, version) - local i = 1 - local m = {"MAJOR", "MINOR", "ALTER"} - for v in version:gmatch("%d+") do - file:print("#define %s_VERSION_%s %s", configprefix, m[i], v) - i = i + 1 - if i > 3 then break end - end - if version_build then - file:print("#define %s_VERSION_BUILD %s", configprefix, version_build) - end - file:print("") - end - - -- make the tail - file:print("#endif") - - -- cache the file - _g.configfiles[configheader] = file -end - --- the main entry function -function main() - - -- enter project directory - local oldir = os.cd(project.directory()) - - -- make configure for the given target name - _g.configfiles = {} - _g.configpathes = {} - - -- make configure for all targets - for _, target in pairs(project.targets()) do - _make_for_target(target) - end - - -- close and update files - for configpath, configfile_tmp in pairs(_g.configfiles) do - - -- close the temporary file first - configfile_tmp:close() - - -- update file if the content is changed - local configpath_tmp = path.join(os.tmpdir(), hash.uuid4(configpath)) - if os.isfile(configpath_tmp) then - if os.isfile(configpath) then - if io.readfile(configpath_tmp) ~= io.readfile(configpath) then - os.cp(configpath_tmp, configpath) - end - else - os.cp(configpath_tmp, configpath) - end - end - end - - -- leave project directory - os.cd(oldir) -end diff --git a/xmake/actions/config/main.lua b/xmake/actions/config/main.lua index 70378ebfb1..47f5427067 100644 --- a/xmake/actions/config/main.lua +++ b/xmake/actions/config/main.lua @@ -30,7 +30,6 @@ import("core.cache.localcache") import("scangen") import("menuconf", {alias = "menuconf_show"}) import("configfiles", {alias = "generate_configfiles"}) -import("configheader", {alias = "generate_configheader"}) import("private.action.require.check", {alias = "check_packages"}) import("private.action.require.install", {alias = "install_packages"}) import("private.service.remote_build.action", {alias = "remote_build_action"}) @@ -404,9 +403,6 @@ force to build in current directory via run `xmake -P .`]], os.projectdir()) -- update the config files generate_configfiles({force = recheck}) - if recheck then - generate_configheader() - end end -- dump config diff --git a/xmake/actions/package/oldpkg/main.lua b/xmake/actions/package/oldpkg/main.lua index 4dea87c4b4..4c75e92619 100644 --- a/xmake/actions/package/oldpkg/main.lua +++ b/xmake/actions/package/oldpkg/main.lua @@ -55,12 +55,6 @@ function _package_library(target) end end - -- copy the config.h to the output directory (deprecated) - local configheader = target:configheader() - if configheader then - os.vcp(configheader, format("%s/%s.pkg/$(plat)/$(arch)/include/%s", outputdir, targetname, path.filename(configheader))) - end - -- copy headers local srcheaders, dstheaders = target:headerfiles(format("%s/%s.pkg/$(plat)/$(arch)/include", outputdir, targetname)) if srcheaders and dstheaders then diff --git a/xmake/core/project/deprecated/project.lua b/xmake/core/project/deprecated/project.lua index f2e60d248b..0336784e07 100644 --- a/xmake/core/project/deprecated/project.lua +++ b/xmake/core/project/deprecated/project.lua @@ -32,130 +32,8 @@ local config = require("project/config") local platform = require("platform/platform") local deprecated = require("base/deprecated") --- add_headers for target -function deprecated_project._api_target_add_headers(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "add_headers") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "add_headers", function (value, ...) - - -- deprecated - deprecated.add("add_headerfiles(%s)", "add_headers(%s)", tostring(value)) - - -- dispatch it - apifunc(value, ...) - end) -end - --- set_config_header for target -function deprecated_project._api_target_set_config_header(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "set_config_header") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "set_config_header", function (value, ...) - - -- deprecated - deprecated.add("add_configfiles(%s.in)", "set_config_header(%s)", tostring(value)) - - -- dispatch it - apifunc(value, ...) - end) -end - --- set_headerdir for target -function deprecated_project._api_target_set_headerdir(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "set_headerdir") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "set_headerdir", function (value, ...) - - -- deprecated - deprecated.add(false, "set_headerdir(%s)", tostring(value)) - - -- dispatch it - apifunc(value, ...) - end) -end - --- set_tools for target -function deprecated_project._api_target_set_tools(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "set_tools") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "set_tools", function (key, value, ...) - - -- deprecated - deprecated.add("set_toolset(%s, %s)", "set_tools(%s, %s)", tostring(key), tostring(value)) - - -- dispatch it - apifunc(key, value, ...) - end) -end - --- set_toolchain for target -function deprecated_project._api_target_set_toolchain(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "set_toolchain") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "set_toolchain", function (key, value, ...) - - -- deprecated - deprecated.add("set_toolset(%s, %s)", "set_toolchain(%s, %s)", tostring(key), tostring(value)) - - -- dispatch it - apifunc(key, value, ...) - end) -end - --- add_tools for target -function deprecated_project._api_target_add_tools(interp) - - -- get api function - local apifunc = interp:_api_within_scope("target", "add_tools") - assert(apifunc) - - -- register api - interp:_api_within_scope_set("target", "add_tools", function (key, value, ...) - - -- deprecated - deprecated.add("set_toolset(%s, %s)", "add_tools(%s, %s)", tostring(key), tostring(value)) - - -- dispatch it - apifunc(key, value, ...) - end) -end - -- register api function deprecated_project.api_register(interp) - - -- register api: add_headers() to target - deprecated_project._api_target_add_headers(interp) - - -- register api: set_config_header() to option/target - deprecated_project._api_target_set_config_header(interp) - - -- register api: set_headerdir() to target - deprecated_project._api_target_set_headerdir(interp) - - -- register api: set_toolchain/set_tools/add_tools() to target - deprecated_project._api_target_set_tools(interp) - deprecated_project._api_target_add_tools(interp) - deprecated_project._api_target_set_toolchain(interp) end -- return module: deprecated_project diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 0a1c68a4ae..0153da6a7d 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -2025,78 +2025,6 @@ function _instance:script(name, generic) return result end --- TODO get the config header version (deprecated) -function _instance:configversion() - - -- get the config version and build version - local version = nil - local buildversion = nil - local configheader = self:get("config_header") - local configheader_extra = self:get("__extra_config_header") - if type(configheader_extra) == "table" then - version = table.wrap(configheader_extra[configheader]).version - buildversion = self._CONFIGHEADER_BUILDVERSION - if not buildversion then - buildversion = table.wrap(configheader_extra[configheader]).buildversion - if buildversion then - buildversion = os.date(buildversion, os.time()) - end - self._CONFIGHEADER_BUILDVERSION = buildversion - end - end - - -- ok? - return version, buildversion -end - --- get the config header prefix -function _instance:configprefix() - - -- get the config prefix - local configprefix = nil - local configheader = self:get("config_header") - local configheader_extra = self:get("__extra_config_header") - if type(configheader_extra) == "table" then - configprefix = table.wrap(configheader_extra[configheader]).prefix - end - return configprefix -end - --- get the config header files (deprecated) -function _instance:configheader(outputdir) - - -- get config header - local configheader = self:get("config_header") - if not configheader then - return - end - - -- get the root directory - local rootdir, count = configheader:gsub("|.*$", ""):gsub("%(.*%)$", "") - if count == 0 then - rootdir = nil - end - if rootdir and rootdir:trim() == "" then - rootdir = "." - end - - -- remove '(' and ')' - configheader = configheader:gsub("[%(%)]", "") - - -- get the output header - local outputheader = nil - if outputdir then - if rootdir then - outputheader = path.absolute(path.relative(configheader, rootdir), outputdir) - else - outputheader = path.join(outputdir, path.filename(configheader)) - end - end - - -- ok - return configheader, outputheader -end - -- get the precompiled header file (xxx.[h|hpp|inl]) -- -- @param langkind c/cxx @@ -2506,6 +2434,12 @@ function target.apis() , "target.add_languages" , "target.add_vectorexts" , "target.add_toolchains" + , "target.add_defines" + , "target.add_undefines" + , "target.add_frameworks" + , "target.add_rpathdirs" -- @note do not translate path, it's usually an absolute path or contains $ORIGIN/@loader_path + , "target.add_links" + , "target.add_syslinks" } , keyvalues = { @@ -2530,6 +2464,11 @@ function target.apis() , "target.set_installdir" , "target.set_rundir" -- target.add_xxx + , "target.add_headerfiles" + , "target.add_linkdirs" + , "target.add_includedirs" + , "target.add_sysincludedirs" + , "target.add_frameworkdirs" , "target.add_files" , "target.add_cleanfiles" , "target.add_configfiles" @@ -2540,12 +2479,6 @@ function target.apis() , "target.remove_files" , "target.remove_headerfiles" } - , dictionary = - { - -- target.set_xxx - "target.set_tools" -- TODO: deprecated - , "target.add_tools" -- TODO: deprecated - } , script = { -- target.on_xxx diff --git a/xmake/languages/c++/load.lua b/xmake/languages/c++/load.lua index 16380ab3c2..f500064620 100644 --- a/xmake/languages/c++/load.lua +++ b/xmake/languages/c++/load.lua @@ -149,18 +149,12 @@ function _get_apis() local apis = {} apis.values = { -- target.add_xxx - "target.add_links" - , "target.add_syslinks" , "target.add_cflags" , "target.add_cxflags" , "target.add_cxxflags" , "target.add_ldflags" , "target.add_arflags" , "target.add_shflags" - , "target.add_defines" - , "target.add_undefines" - , "target.add_frameworks" - , "target.add_rpathdirs" -- @note do not translate path, it's usually an absolute path or contains $ORIGIN/@loader_path -- option.add_xxx , "option.add_cincludes" , "option.add_cxxincludes" @@ -217,17 +211,8 @@ function _get_apis() } apis.paths = { -- target.set_xxx - "target.set_headerdir" -- TODO deprecated - , "target.set_config_header" -- TODO deprecated , "target.set_pcheader" , "target.set_pcxxheader" - -- target.add_xxx - , "target.add_headers" -- TODO deprecated - , "target.add_headerfiles" - , "target.add_linkdirs" - , "target.add_includedirs" - , "target.add_sysincludedirs" - , "target.add_frameworkdirs" -- option.add_xxx , "option.add_linkdirs" , "option.add_includedirs" diff --git a/xmake/modules/target/action/clean/main.lua b/xmake/modules/target/action/clean/main.lua index 0335aa648f..06bd39f70c 100644 --- a/xmake/modules/target/action/clean/main.lua +++ b/xmake/modules/target/action/clean/main.lua @@ -53,10 +53,6 @@ function main(target) remove_files(target:pcoutputfile("c")) remove_files(target:pcoutputfile("cxx")) - -- TODO remove the header files (deprecated) - local _, dstheaders = target:headers() - remove_files(dstheaders) - -- remove the clean files remove_files(target:get("cleanfiles")) @@ -67,9 +63,6 @@ function main(target) local _, configfiles = target:configfiles() remove_files(configfiles) - -- TODO remove the config.h file (deprecated) - remove_files(target:configheader()) - -- remove all dependent files for each platform remove_files(target:dependir({root = true})) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 0c78ba4bf0..54d87a2515 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -482,11 +482,6 @@ function _add_target_include_directories(cmakelists, target, outputdir) 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(), _get_relative_unix_path(path.directory(configheader), outputdir)) - end end -- add target system include directories diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua index 39cfcc65c7..48da917a6c 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x.lua @@ -38,7 +38,6 @@ import("core.cache.localcache") import("private.action.require.install", {alias = "install_requires"}) import("private.action.run.runenvs") import("actions.config.configfiles", {alias = "generate_configfiles", rootdir = os.programdir()}) -import("actions.config.configheader", {alias = "generate_configheader", rootdir = os.programdir()}) import("private.utils.batchcmds") function _translate_path(dir, vcxprojdir) @@ -399,35 +398,6 @@ function _make_targetheaders(mode, arch, target, last) i = i + 1 end end - - -- make config header - local configheader_raw = target:configheader() - if configheader_raw and os.isfile(configheader_raw) then - - -- init the config header path for each mode and arch - local configheader_mode_arch = path.join(path.directory(configheader_raw), mode .. "." .. arch .. "." .. path.filename(configheader_raw)) - - -- init the temporary config header path - local configheader_tmp = path.join(path.directory(configheader_raw), "tmp." .. path.filename(configheader_raw)) - - -- copy the original config header first - os.cp(configheader_raw, configheader_mode_arch) - - -- append the current config header - local file = io.open(configheader_tmp, "a+") - if file then - file:print("") - file:print("#if defined(__config_%s__) && defined(__config_%s__)", mode, arch) - file:print("# include \"%s.%s.%s\"", mode, arch, path.filename(configheader_raw)) - file:print("#endif") - file:close() - end - - -- override the raw config header at last - if last and os.isfile(configheader_tmp) then - os.mv(configheader_tmp, configheader_raw) - end - end end end @@ -553,7 +523,6 @@ function make(outputdir, vsinfo) -- update config files generate_configfiles() - generate_configheader() end -- ensure to enter project directory diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index 031cbd66c1..bca462bc5c 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -33,7 +33,6 @@ import("core.cache.localcache") import("lib.detect.find_tool") import("private.action.run.runenvs") import("private.action.require.install", {alias = "install_requires"}) -import("actions.config.configheader", {alias = "generate_configheader", rootdir = os.programdir()}) import("actions.config.configfiles", {alias = "generate_configfiles", rootdir = os.programdir()}) import("vstudio.impl.vsutils", {rootdir = path.join(os.programdir(), "plugins", "project")}) @@ -456,7 +455,6 @@ function main(outputdir, vsinfo) -- update config files generate_configfiles() - generate_configheader() -- ensure to enter project directory os.cd(project.directory())