mirror of
https://onedev.site.tesses.net/crosslang
synced 2026-02-08 09:05:46 +00:00
Assembler accessable now from cli
This commit is contained in:
@@ -264,6 +264,10 @@ if (APPLE)
|
||||
else()
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
add_executable(crossmerge src/crossmergecli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossasm src/crossasmcli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossdisasm src/crossdisasmcli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
|
||||
add_executable(crossc src/crosslangcompiler.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossvm src/crosslangvm.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
@@ -281,6 +285,10 @@ target_link_libraries(crossdump PUBLIC crosslang_shared)
|
||||
target_link_libraries(crosslang PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossarchiveextract PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossarchivecreate PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossasm PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossdisasm PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossmerge PUBLIC crosslang_shared)
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_shared)
|
||||
endif()
|
||||
@@ -293,6 +301,10 @@ add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossarchiveextract src/crossarchiveextract.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossasm src/crossasmcli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossdisasm src/crossdisasmcli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossmerge src/crossmergecli.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
|
||||
if(NOT WIN32)
|
||||
add_executable(crossthumbnailer src/crossthumbnailer.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
endif()
|
||||
@@ -302,7 +314,10 @@ target_link_libraries(crossint PUBLIC crosslang_static)
|
||||
target_link_libraries(crossdump PUBLIC crosslang_static)
|
||||
target_link_libraries(crosslang PUBLIC crosslang_static)
|
||||
target_link_libraries(crossarchiveextract PUBLIC crosslang_static)
|
||||
target_link_libraries(crossarchivecreate PUBLIC crosslang_static)
|
||||
target_link_libraries(crossmerge PUBLIC crosslang_static)
|
||||
target_link_libraries(crossasm PUBLIC crosslang_static)
|
||||
target_link_libraries(crossdisasm PUBLIC crosslang_static)
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_static)
|
||||
endif()
|
||||
@@ -314,6 +329,10 @@ add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_W
|
||||
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossarchiveextract src/crossarchiveextract.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossasm src/crossasmcli.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossdisasm src/crossdisasmcli.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
add_executable(crossmerge src/crossmergecli.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
|
||||
if(NOT WIN32)
|
||||
add_executable(crossthumbnailer src/crossthumbnailer.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
endif()
|
||||
@@ -324,6 +343,10 @@ CROSSLANG_LINK_DEPS(crosslang)
|
||||
CROSSLANG_LINK_DEPS(crossdump)
|
||||
CROSSLANG_LINK_DEPS(crossarchiveextract)
|
||||
CROSSLANG_LINK_DEPS(crossarchivecreate)
|
||||
CROSSLANG_LINK_DEPS(crossmerge)
|
||||
CROSSLANG_LINK_DEPS(crossdisasm)
|
||||
CROSSLANG_LINK_DEPS(crossasm)
|
||||
|
||||
if(NOT WIN32)
|
||||
CROSSLANG_LINK_DEPS(crossthumbnailer)
|
||||
endif()
|
||||
@@ -335,6 +358,9 @@ target_link_libraries(crosslang PUBLIC tessesframework)
|
||||
target_link_libraries(crossdump PUBLIC tessesframework)
|
||||
target_link_libraries(crossarchiveextract PUBLIC tessesframework)
|
||||
target_link_libraries(crossarchivecreate PUBLIC tessesframework)
|
||||
target_link_libraries(crossasm PUBLIC tessesframework)
|
||||
target_link_libraries(crossdisasm PUBLIC tessesframework)
|
||||
target_link_libraries(crossmerge PUBLIC tessesframework)
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC tessesframework)
|
||||
endif()
|
||||
@@ -346,6 +372,9 @@ target_link_libraries(crosslang PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossdump PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossarchiveextract PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossarchivecreate PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossasm PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossdisasm PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossmerge PUBLIC TessesFramework::tessesframework)
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC TessesFramework::tessesframework)
|
||||
endif()
|
||||
@@ -358,6 +387,9 @@ install(TARGETS crossdump DESTINATION bin)
|
||||
install(TARGETS crosslang DESTINATION bin)
|
||||
install(TARGETS crossarchiveextract DESTINATION bin)
|
||||
install(TARGETS crossarchivecreate DESTINATION bin)
|
||||
install(TARGETS crossasm DESTINATION bin)
|
||||
install(TARGETS crossdisasm DESTINATION bin)
|
||||
install(TARGETS crossmerge DESTINATION bin)
|
||||
if(NOT WIN32)
|
||||
install(TARGETS crossthumbnailer DESTINATION bin)
|
||||
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/crossvm-binfmt.conf.in "${CMAKE_CURRENT_BINARY_DIR}/crossvm-binfmt.conf"
|
||||
|
||||
10
README.md
10
README.md
@@ -3,16 +3,13 @@ Tesses Cross Language
|
||||
|
||||

|
||||
|
||||
> :warning: **NOT READY FOR PRODUCTION (THERE WILL BE BREAKING CHANGES)**
|
||||
[WebSite](https://crosslang.tesseslanguage.com/)
|
||||
|
||||
## What is required to build this project
|
||||
- [TessesFramework](https://onedev.site.tesses.net/tesses-framework) (if you turn CROSSLANG_FETCHCONTENT off otherwise it will be grabbed automaticly)
|
||||
- CMake
|
||||
|
||||
## What libraries have I embeded from other people
|
||||
- [Sqlite](https://www.sqlite.org/) (in folder src/sqlite also uses demo VFS (at least on Wii))
|
||||
- [Sago's platform_folders](https://github.com/sago007/PlatformFolders) (in folder src/sago)
|
||||
- [subprocess](https://github.com/sheredom/subprocess.h) (as file src/runtime_methods/subprocess.h)
|
||||
|
||||
## Use in docker (use my container)
|
||||
```bash
|
||||
sudo docker pull -t onedev.site.tesses.net/crosslang/crosslang:latest
|
||||
@@ -55,9 +52,6 @@ make -j`nproc`
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Run these commands to install crosslang (without plugin support)
|
||||
Or use binaries from [here](https://crosslang.tesseslanguage.com/download/)
|
||||
|
||||
```bash
|
||||
git clone https://onedev.site.tesses.net/CrossLang
|
||||
cd CrossLang
|
||||
|
||||
21
src/crossasmcli.cpp
Normal file
21
src/crossasmcli.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "CrossLang.hpp"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
using namespace Tesses::Framework;
|
||||
using namespace Tesses::Framework::Streams;
|
||||
using namespace Tesses::Framework::Filesystem;
|
||||
using namespace Tesses::CrossLang;
|
||||
if(argc > 1 && strcmp(argv[1],"--help"))
|
||||
{
|
||||
std::cout << "Run this command in directory you want to assemble (with the crossasm.json)" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
auto curdir = VFSPath::GetAbsoluteCurrentDirectory();
|
||||
SubdirFilesystem sdfs(&LocalFS,curdir,false);
|
||||
auto path = Assemble(&sdfs);
|
||||
path.relative = true;
|
||||
std::cout << "Output: " << (curdir / path).ToString() << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
60
src/crossdisasmcli.cpp
Normal file
60
src/crossdisasmcli.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "CrossLang.hpp"
|
||||
void help(char* program)
|
||||
{
|
||||
std::cout << "USAGE: " << program << " [flags] FILE.CRVM" << std::endl;
|
||||
std::cout << "USAGE: " << program << " [flags] FILE.CRVM DIR" << std::endl;
|
||||
std::cout << "Flags:" << std::endl;
|
||||
std::cout << "--no-json\tNo json" << std::endl;
|
||||
std::cout << "--no-resources\nNo resources" << std::endl;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
using namespace Tesses::Framework;
|
||||
using namespace Tesses::Framework::Streams;
|
||||
using namespace Tesses::Framework::Filesystem;
|
||||
using namespace Tesses::CrossLang;
|
||||
|
||||
std::string file;
|
||||
Tesses::Framework::Filesystem::VFSPath path = VFSPath::GetAbsoluteCurrentDirectory();
|
||||
int curPos = 0;
|
||||
bool json=true;
|
||||
bool resources = true;
|
||||
for(int i = 1; i < argc; i++)
|
||||
{
|
||||
if(strcmp(argv[i],"--no-json") == 0)
|
||||
{
|
||||
json = false;
|
||||
}
|
||||
else if(strcmp(argv[i],"--no-resources") == 0)
|
||||
{
|
||||
resources = false;
|
||||
}
|
||||
else if(strcmp(argv[i],"--help") == 0)
|
||||
{
|
||||
help(argv[0]);
|
||||
}
|
||||
else {
|
||||
if(curPos == 0)
|
||||
{
|
||||
file = argv[i];
|
||||
curPos++;
|
||||
}
|
||||
else if(curPos == 1)
|
||||
{
|
||||
path = LocalFS.SystemToVFSPath(argv[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(file.empty())
|
||||
{
|
||||
help(argv[0]);
|
||||
}
|
||||
auto strm = LocalFS.OpenFile(file,"rb");
|
||||
SubdirFilesystem sdir(&LocalFS,path,false);
|
||||
if(strm->CanRead())
|
||||
Disassemble(strm, &sdir,json,resources);
|
||||
delete strm;
|
||||
return 0;
|
||||
}
|
||||
43
src/crossmergecli.cpp
Normal file
43
src/crossmergecli.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include "CrossLang.hpp"
|
||||
void help(char* program)
|
||||
{
|
||||
std::cout << "USAGE: " << program << " FILE.CRVM DEST.CRVM" << std::endl;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
using namespace Tesses::Framework;
|
||||
using namespace Tesses::Framework::Streams;
|
||||
using namespace Tesses::Framework::Filesystem;
|
||||
using namespace Tesses::CrossLang;
|
||||
|
||||
if(argc < 3)
|
||||
{
|
||||
help(argv[0]);
|
||||
}
|
||||
|
||||
std::string src=argv[1];
|
||||
std::string dest=argv[2];
|
||||
|
||||
|
||||
|
||||
VFSPath srcF = src;
|
||||
VFSPath destF = dest;
|
||||
srcF.MakeAbsolute();
|
||||
destF.MakeAbsolute();
|
||||
|
||||
|
||||
SubdirFilesystem sdir(&LocalFS,srcF.GetParent(),false);
|
||||
SubdirFilesystem ddir(&LocalFS,destF+"_tmp",false);
|
||||
|
||||
|
||||
auto outpath = Merge(&sdir,"/"+srcF.GetFileName(), &ddir);
|
||||
outpath.relative=true;
|
||||
outpath = (destF+"_tmp") / outpath;
|
||||
LocalFS.MoveFile(outpath,destF);
|
||||
LocalFS.DeleteDirectoryRecurse(destF+"_tmp");
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user