diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-11-21 13:05:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-21 13:05:52 -0800 |
commit | 6cf7343bffa3d485161e221b23dfacd9243dec68 (patch) | |
tree | d330dcc980be1bceadf2df3d1b65fd60385e4879 /src/support/path.h | |
parent | eedcc291164a46474116e0e54ede3133214a7621 (diff) | |
download | binaryen-6cf7343bffa3d485161e221b23dfacd9243dec68.tar.gz binaryen-6cf7343bffa3d485161e221b23dfacd9243dec68.tar.bz2 binaryen-6cf7343bffa3d485161e221b23dfacd9243dec68.zip |
Fix wasm-reduce testing out of tree (#1284)
* fix wasm-reduce when out-of-tree: do not use a hardcoded bin/wasm-opt, instead add a Path namespace with utilities to get the proper path, and use BINARYEN_ROOT which our test setup code ensures
Diffstat (limited to 'src/support/path.h')
-rw-r--r-- | src/support/path.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/support/path.h b/src/support/path.h new file mode 100644 index 000000000..18dde8ea8 --- /dev/null +++ b/src/support/path.h @@ -0,0 +1,58 @@ +/* + * Copyright 2015 WebAssembly Community Group participants + * + * 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. + */ + +// +// Command line helpers. +// + +#ifndef wasm_support_path_h +#define wasm_support_path_h + +#include <cstdlib> +#include <string> + +namespace wasm { + +namespace Path { + +inline std::string getPathSeparator() { + // TODO: use c++17's path separator + // http://en.cppreference.com/w/cpp/experimental/fs/path +#if defined(WIN32) || defined(_WIN32) + return "\\"; +#else + return "/"; +#endif +} + +inline std::string getBinaryenRoot() { + auto* envVar = getenv("BINARYEN_ROOT"); + if (envVar) return envVar; + return "."; +} + +// Gets the path to a binaryen binary tool, like wasm-opt +inline std::string getBinaryenBinaryTool(std::string name) { + return getBinaryenRoot() + getPathSeparator() + + "bin" + getPathSeparator() + + name; +} + +} // namespace Path + +} // namespace wasm + +#endif // wasm_support_path_h |