mirror of
https://github.com/Relintai/osxcross.git
synced 2025-02-03 22:45:56 +01:00
add 'osxcross-man' - man page tool
This commit is contained in:
parent
4450f62e1a
commit
3e46f6cc32
@ -4,6 +4,7 @@ changed:
|
|||||||
* improved and colorized wrapper error/warning/debug/info messages
|
* improved and colorized wrapper error/warning/debug/info messages
|
||||||
|
|
||||||
added:
|
added:
|
||||||
|
* 'osxcross-man' man page tool
|
||||||
* p7zip sdk packaging script
|
* p7zip sdk packaging script
|
||||||
* a minimalistic xcrun tool
|
* a minimalistic xcrun tool
|
||||||
* support for ccache symlinks
|
* support for ccache symlinks
|
||||||
|
@ -98,6 +98,9 @@ LIBCXXDIR1="Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v
|
|||||||
# Xcode 6
|
# Xcode 6
|
||||||
LIBCXXDIR2="Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"
|
LIBCXXDIR2="Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"
|
||||||
|
|
||||||
|
# Manual directory
|
||||||
|
MANDIR="Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man"
|
||||||
|
|
||||||
for SDK in $SDKS; do
|
for SDK in $SDKS; do
|
||||||
echo -n "packaging $(echo "$SDK" | sed -E "s/(.sdk|.pkg)//g") SDK "
|
echo -n "packaging $(echo "$SDK" | sed -E "s/(.sdk|.pkg)//g") SDK "
|
||||||
echo "(this may take several minutes) ..."
|
echo "(this may take several minutes) ..."
|
||||||
@ -119,6 +122,11 @@ for SDK in $SDKS; do
|
|||||||
cp -rf $LIBCXXDIR2 "$TMP/$SDK/usr/include/c++"
|
cp -rf $LIBCXXDIR2 "$TMP/$SDK/usr/include/c++"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d $MANDIR ]; then
|
||||||
|
mkdir -p $TMP/$SDK/usr/share/man
|
||||||
|
cp -rf $MANDIR/* $TMP/$SDK/usr/share/man
|
||||||
|
fi
|
||||||
|
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
|
|
||||||
pushd $TMP &>/dev/null
|
pushd $TMP &>/dev/null
|
||||||
|
@ -44,6 +44,7 @@ SRCS= \
|
|||||||
programs/osxcross-env.cpp \
|
programs/osxcross-env.cpp \
|
||||||
programs/osxcross-conf.cpp \
|
programs/osxcross-conf.cpp \
|
||||||
programs/osxcross-cmp.cpp \
|
programs/osxcross-cmp.cpp \
|
||||||
|
programs/osxcross-man.cpp \
|
||||||
programs/sw_vers.cpp \
|
programs/sw_vers.cpp \
|
||||||
programs/pkg-config.cpp \
|
programs/pkg-config.cpp \
|
||||||
programs/xcrun.cpp
|
programs/xcrun.cpp
|
||||||
|
@ -144,6 +144,7 @@ create_wrapper_link osxcross 1
|
|||||||
create_wrapper_link osxcross-conf 1
|
create_wrapper_link osxcross-conf 1
|
||||||
create_wrapper_link osxcross-env 1
|
create_wrapper_link osxcross-env 1
|
||||||
create_wrapper_link osxcross-cmp 1
|
create_wrapper_link osxcross-cmp 1
|
||||||
|
create_wrapper_link osxcross-man 1
|
||||||
create_wrapper_link pkg-config
|
create_wrapper_link pkg-config
|
||||||
|
|
||||||
if [ "$PLATFORM" != "Darwin" ]; then
|
if [ "$PLATFORM" != "Darwin" ]; then
|
||||||
|
@ -32,11 +32,8 @@ int conf(Target &target) {
|
|||||||
OSVersion OSXVersionMin = getDefaultMinTarget();
|
OSVersion OSXVersionMin = getDefaultMinTarget();
|
||||||
const char *ltopath = getLibLTOPath();
|
const char *ltopath = getLibLTOPath();
|
||||||
|
|
||||||
if (!target.getSDKPath(SDKPath)) {
|
if (!target.getSDKPath(SDKPath))
|
||||||
err << "cannot find Mac OS X SDK (expected in: " << SDKPath << ")"
|
|
||||||
<< err.endl();
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (!OSXVersionMin.Num())
|
if (!OSXVersionMin.Num())
|
||||||
OSXVersionMin = target.getSDKOSNum();
|
OSXVersionMin = target.getSDKOSNum();
|
||||||
|
61
wrapper/programs/osxcross-man.cpp
Normal file
61
wrapper/programs/osxcross-man.cpp
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/***********************************************************************
|
||||||
|
* OSXCross Compiler Wrapper *
|
||||||
|
* Copyright (C) 2014, 2015 by Thomas Poechtrager *
|
||||||
|
* t.poechtrager@gmail.com *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License *
|
||||||
|
* as published by the Free Software Foundation; either version 2 *
|
||||||
|
* of the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the Free Software *
|
||||||
|
* Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
#include "proginc.h"
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
using namespace tools;
|
||||||
|
using namespace target;
|
||||||
|
|
||||||
|
namespace program {
|
||||||
|
namespace osxcross {
|
||||||
|
|
||||||
|
int man(int argc, char **argv, Target &target) {
|
||||||
|
std::string SDKPath;
|
||||||
|
target.getSDKPath(SDKPath);
|
||||||
|
std::string manpath = SDKPath + "/usr/share/man";
|
||||||
|
|
||||||
|
if (!dirExists(manpath)) {
|
||||||
|
err << "directory '" << manpath << "' does not exist" << err.endl();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<char *> args;
|
||||||
|
|
||||||
|
args.push_back(const_cast<char *>("man"));
|
||||||
|
args.push_back(const_cast<char *>("--manpath"));
|
||||||
|
args.push_back(const_cast<char *>(manpath.c_str()));
|
||||||
|
|
||||||
|
for (int i = 1; i < argc; ++i)
|
||||||
|
args.push_back(argv[i]);
|
||||||
|
|
||||||
|
args.push_back(nullptr);
|
||||||
|
|
||||||
|
execvp(args[0], args.data());
|
||||||
|
err << "cannot execute '" << args[0] << "'" << err.endl();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace osxcross
|
||||||
|
} // namespace program
|
@ -32,14 +32,6 @@ namespace program {
|
|||||||
|
|
||||||
static bool showCommand = false;
|
static bool showCommand = false;
|
||||||
|
|
||||||
bool getSDKPath(Target &target, std::string &SDKPath) {
|
|
||||||
if (!target.getSDKPath(SDKPath)) {
|
|
||||||
err << "xcrun: cannot find MacOSX SDK" << err.endl();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getToolPath(Target &target, std::string &toolpath, const char *tool) {
|
bool getToolPath(Target &target, std::string &toolpath, const char *tool) {
|
||||||
toolpath = target.execpath;
|
toolpath = target.execpath;
|
||||||
toolpath += "/";
|
toolpath += "/";
|
||||||
@ -127,7 +119,7 @@ int run(Target &target, char **argv) {
|
|||||||
|
|
||||||
int showSDKPath(Target &target, char **) {
|
int showSDKPath(Target &target, char **) {
|
||||||
std::string SDKPath;
|
std::string SDKPath;
|
||||||
if (!getSDKPath(target, SDKPath))
|
if (!target.getSDKPath(SDKPath))
|
||||||
return 1;
|
return 1;
|
||||||
std::cout << SDKPath << std::endl;
|
std::cout << SDKPath << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -82,6 +82,7 @@ int version();
|
|||||||
int env(int argc, char **argv);
|
int env(int argc, char **argv);
|
||||||
int conf(Target &target);
|
int conf(Target &target);
|
||||||
int cmp(int argc, char **argv);
|
int cmp(int argc, char **argv);
|
||||||
|
int man(int argc, char **argv, Target &target);
|
||||||
int pkg_config(int argc, char **argv, Target &target);
|
int pkg_config(int argc, char **argv, Target &target);
|
||||||
} // namespace osxcross
|
} // namespace osxcross
|
||||||
|
|
||||||
@ -94,6 +95,7 @@ constexpr prog programs[] = { { "sw_vers", sw_vers },
|
|||||||
{ "osxcross-env", osxcross::env },
|
{ "osxcross-env", osxcross::env },
|
||||||
{ "osxcross-conf", osxcross::conf },
|
{ "osxcross-conf", osxcross::conf },
|
||||||
{ "osxcross-cmp", osxcross::cmp },
|
{ "osxcross-cmp", osxcross::cmp },
|
||||||
|
{ "osxcross-man", osxcross::man },
|
||||||
{ "pkg-config", osxcross::pkg_config },
|
{ "pkg-config", osxcross::pkg_config },
|
||||||
{ "wrapper", dummy } };
|
{ "wrapper", dummy } };
|
||||||
|
|
||||||
|
@ -56,7 +56,14 @@ bool Target::getSDKPath(std::string &path) const {
|
|||||||
path += "u";
|
path += "u";
|
||||||
|
|
||||||
path += ".sdk";
|
path += ".sdk";
|
||||||
return dirExists(path);
|
|
||||||
|
if (!dirExists(path)) {
|
||||||
|
err << "cannot find Mac OS X SDK (expected in: " << path << ")"
|
||||||
|
<< err.endl();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Target::getMacPortsDir(std::string &path) const {
|
bool Target::getMacPortsDir(std::string &path) const {
|
||||||
@ -429,11 +436,8 @@ bool Target::setup() {
|
|||||||
if (!isKnownCompiler())
|
if (!isKnownCompiler())
|
||||||
warn << "unknown compiler '" << compilername << "'" << warn.endl();
|
warn << "unknown compiler '" << compilername << "'" << warn.endl();
|
||||||
|
|
||||||
if (!getSDKPath(SDKPath)) {
|
if (!getSDKPath(SDKPath))
|
||||||
err << "cannot find Mac OS X SDK (expected in: " << SDKPath << ")"
|
|
||||||
<< err.endl();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
if (targetarch.empty())
|
if (targetarch.empty())
|
||||||
targetarch.push_back(arch);
|
targetarch.push_back(arch);
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
<File Name="programs/osxcross-conf.cpp"/>
|
<File Name="programs/osxcross-conf.cpp"/>
|
||||||
<File Name="programs/osxcross-cmp.cpp"/>
|
<File Name="programs/osxcross-cmp.cpp"/>
|
||||||
<File Name="programs/xcrun.cpp"/>
|
<File Name="programs/xcrun.cpp"/>
|
||||||
|
<File Name="programs/osxcross-man.cpp"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
<File Name="Makefile"/>
|
<File Name="Makefile"/>
|
||||||
<File Name="build.sh"/>
|
<File Name="build.sh"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user