mirror of
https://onedev.site.tesses.net/crosslang
synced 2026-02-08 17:15:45 +00:00
Change cmake
This commit is contained in:
@@ -9,7 +9,7 @@ include(CMakePackageConfigHelpers)
|
|||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
|
|
||||||
#option(CROSSLANG_ENABLE_DOXYGEN "Enable doxygen" ON)
|
#option(CROSSLANG_ENABLE_DOXYGEN "Enable doxygen" ON)
|
||||||
|
option(CROSSLANG_SHELLONLY "Only build CrossLang Shell Executable" ON)
|
||||||
option(CROSSLANG_ENABLE_STATIC "Enable Tesses CrossLang static libraries" ON)
|
option(CROSSLANG_ENABLE_STATIC "Enable Tesses CrossLang static libraries" ON)
|
||||||
option(CROSSLANG_ENABLE_SHARED "Enable Tesses CrossLang shared libraries" ON)
|
option(CROSSLANG_ENABLE_SHARED "Enable Tesses CrossLang shared libraries" ON)
|
||||||
option(CROSSLANG_ENABLE_BINARIES "Enable Tesses CrossLang binaries" ON)
|
option(CROSSLANG_ENABLE_BINARIES "Enable Tesses CrossLang binaries" ON)
|
||||||
@@ -129,6 +129,9 @@ target_include_directories(${CROSSLANG_TARGET_NAME}
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
list(APPEND CROSSLANG_SOURCE
|
list(APPEND CROSSLANG_SOURCE
|
||||||
|
src/assembler/asm.cpp
|
||||||
|
src/assembler/disasm.cpp
|
||||||
|
src/assembler/merge.cpp
|
||||||
src/compiler/codegen.cpp
|
src/compiler/codegen.cpp
|
||||||
src/compiler/lexer.cpp
|
src/compiler/lexer.cpp
|
||||||
src/compiler/parser.cpp
|
src/compiler/parser.cpp
|
||||||
@@ -261,11 +264,11 @@ if (APPLE)
|
|||||||
else()
|
else()
|
||||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
|
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT CROSSLANG_SHELLONLY)
|
||||||
add_executable(crossc src/crosslangcompiler.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(crossvm src/crosslangvm.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
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(crossarchiveextract src/crossarchiveextract.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
@@ -275,19 +278,22 @@ target_link_libraries(crossc PUBLIC crosslang_shared)
|
|||||||
target_link_libraries(crossvm PUBLIC crosslang_shared)
|
target_link_libraries(crossvm PUBLIC crosslang_shared)
|
||||||
target_link_libraries(crossint PUBLIC crosslang_shared)
|
target_link_libraries(crossint PUBLIC crosslang_shared)
|
||||||
target_link_libraries(crossdump PUBLIC crosslang_shared)
|
target_link_libraries(crossdump PUBLIC crosslang_shared)
|
||||||
target_link_libraries(crosslang PUBLIC crosslang_shared)
|
|
||||||
target_link_libraries(crossarchiveextract PUBLIC crosslang_shared)
|
target_link_libraries(crossarchiveextract PUBLIC crosslang_shared)
|
||||||
target_link_libraries(crossarchivecreate PUBLIC crosslang_shared)
|
target_link_libraries(crossarchivecreate PUBLIC crosslang_shared)
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_shared)
|
target_link_libraries(crossthumbnailer PUBLIC crosslang_shared)
|
||||||
endif()
|
endif()
|
||||||
elseif(CROSSLANG_ENABLE_STATIC)
|
endif()
|
||||||
|
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
|
|
||||||
|
target_link_libraries(crosslang PUBLIC crosslang_shared)
|
||||||
|
|
||||||
|
elseif(CROSSLANG_ENABLE_STATIC)
|
||||||
|
if(NOT CROSSLANG_SHELLONLY)
|
||||||
add_executable(crossc src/crosslangcompiler.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(crossvm src/crosslangvm.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
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(crossarchiveextract src/crossarchiveextract.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
@@ -297,18 +303,22 @@ target_link_libraries(crossc PUBLIC crosslang_static)
|
|||||||
target_link_libraries(crossvm PUBLIC crosslang_static)
|
target_link_libraries(crossvm PUBLIC crosslang_static)
|
||||||
target_link_libraries(crossint PUBLIC crosslang_static)
|
target_link_libraries(crossint PUBLIC crosslang_static)
|
||||||
target_link_libraries(crossdump 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(crossarchiveextract PUBLIC crosslang_static)
|
||||||
target_link_libraries(crossarchivecreate PUBLIC crosslang_static)
|
target_link_libraries(crossarchivecreate PUBLIC crosslang_static)
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_static)
|
target_link_libraries(crossthumbnailer PUBLIC crosslang_static)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
|
|
||||||
|
target_link_libraries(crosslang PUBLIC crosslang_static)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
if(NOT CROSSLANG_SHELLONLY)
|
||||||
add_executable(crossc src/crosslangcompiler.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossc src/crosslangcompiler.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossvm src/crosslangvm.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossvm src/crosslangvm.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossint src/crosslanginterperter.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossdump src/crosslangdump.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
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(crossarchiveextract src/crossarchiveextract.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
add_executable(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
@@ -317,13 +327,14 @@ endif()
|
|||||||
CROSSLANG_LINK_DEPS(crossc)
|
CROSSLANG_LINK_DEPS(crossc)
|
||||||
CROSSLANG_LINK_DEPS(crossvm)
|
CROSSLANG_LINK_DEPS(crossvm)
|
||||||
CROSSLANG_LINK_DEPS(crossint)
|
CROSSLANG_LINK_DEPS(crossint)
|
||||||
CROSSLANG_LINK_DEPS(crosslang)
|
|
||||||
CROSSLANG_LINK_DEPS(crossdump)
|
CROSSLANG_LINK_DEPS(crossdump)
|
||||||
CROSSLANG_LINK_DEPS(crossarchiveextract)
|
CROSSLANG_LINK_DEPS(crossarchiveextract)
|
||||||
CROSSLANG_LINK_DEPS(crossarchivecreate)
|
CROSSLANG_LINK_DEPS(crossarchivecreate)
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
CROSSLANG_LINK_DEPS(crossthumbnailer)
|
CROSSLANG_LINK_DEPS(crossthumbnailer)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CROSSLANG_FETCHCONTENT)
|
if(CROSSLANG_FETCHCONTENT)
|
||||||
target_link_libraries(crossc PUBLIC tessesframework)
|
target_link_libraries(crossc PUBLIC tessesframework)
|
||||||
target_link_libraries(crossvm PUBLIC tessesframework)
|
target_link_libraries(crossvm PUBLIC tessesframework)
|
||||||
@@ -347,6 +358,17 @@ if(NOT WIN32)
|
|||||||
target_link_libraries(crossthumbnailer PUBLIC TessesFramework::tessesframework)
|
target_link_libraries(crossthumbnailer PUBLIC TessesFramework::tessesframework)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||||
|
CROSSLANG_LINK_DEPS(crosslang)
|
||||||
|
if(CROSSLANG_FETCHCONTENT)
|
||||||
|
target_link_libraries(crosslang PUBLIC tessesframework)
|
||||||
|
|
||||||
|
else()
|
||||||
|
target_link_libraries(crosslang PUBLIC TessesFramework::tessesframework)
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
install(TARGETS crossc DESTINATION bin)
|
install(TARGETS crossc DESTINATION bin)
|
||||||
install(TARGETS crossvm DESTINATION bin)
|
install(TARGETS crossvm DESTINATION bin)
|
||||||
|
|||||||
@@ -2568,4 +2568,8 @@ class GC {
|
|||||||
TObject GetClassInfo(GCList& ls,TFile* f, uint32_t index);
|
TObject GetClassInfo(GCList& ls,TFile* f, uint32_t index);
|
||||||
|
|
||||||
extern Tesses::Framework::Filesystem::VFSPath CrossLangConfigPath;
|
extern Tesses::Framework::Filesystem::VFSPath CrossLangConfigPath;
|
||||||
|
|
||||||
|
Tesses::Framework::Filesystem::VFSPath Assemble(Tesses::Framework::Filesystem::VFS* vfs);
|
||||||
|
void Disassemble(Tesses::Framework::Streams::Stream* src,Tesses::Framework::Filesystem::VFS* vfs, bool generateJSON=true,bool extractResources=true);
|
||||||
|
Tesses::Framework::Filesystem::VFSPath Merge(Tesses::Framework::Filesystem::VFS* srcFS, Tesses::Framework::Filesystem::VFSPath sourcePath, Tesses::Framework::Filesystem::VFS* destFS);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -76,14 +76,13 @@ namespace Tesses::CrossLang {
|
|||||||
name.append(".crvm");
|
name.append(".crvm");
|
||||||
std::string filename="/" + name;
|
std::string filename="/" + name;
|
||||||
|
|
||||||
|
if(vfs->RegularFileExists(filename))
|
||||||
Tesses::Framework::Streams::Stream* file;
|
|
||||||
if(vfs->RegularFileExists(filename) && (file = vfs->OpenFile(filename,"rb")) != nullptr)
|
|
||||||
{
|
{
|
||||||
|
Tesses::Framework::Streams::Stream* file = vfs->OpenFile(filename,"rb");
|
||||||
GCList ls(gc);
|
GCList ls(gc);
|
||||||
TFile* f = TFile::Create(ls);
|
TFile* f = TFile::Create(ls);
|
||||||
f->Load(gc, file);
|
f->Load(gc, file);
|
||||||
|
delete file;
|
||||||
LoadFileWithDependencies(gc, vfs, f);
|
LoadFileWithDependencies(gc, vfs, f);
|
||||||
}
|
}
|
||||||
else throw VMException("Could not open file: \"" + name + "\".");
|
else throw VMException("Could not open file: \"" + name + "\".");
|
||||||
@@ -254,14 +253,15 @@ namespace Tesses::CrossLang {
|
|||||||
}
|
}
|
||||||
void TRootEnvironment::LoadFileWithDependencies(GC* gc,Tesses::Framework::Filesystem::VFS* vfs, Tesses::Framework::Filesystem::VFSPath path)
|
void TRootEnvironment::LoadFileWithDependencies(GC* gc,Tesses::Framework::Filesystem::VFS* vfs, Tesses::Framework::Filesystem::VFSPath path)
|
||||||
{
|
{
|
||||||
Tesses::Framework::Streams::Stream* file;
|
|
||||||
|
|
||||||
if(vfs->RegularFileExists(path) && (file = vfs->OpenFile(path,"rb")) != nullptr)
|
|
||||||
|
if(vfs->RegularFileExists(path))
|
||||||
{
|
{
|
||||||
|
Tesses::Framework::Streams::Stream* file=vfs->OpenFile(path,"rb");
|
||||||
GCList ls(gc);
|
GCList ls(gc);
|
||||||
TFile* f = TFile::Create(ls);
|
TFile* f = TFile::Create(ls);
|
||||||
f->Load(gc, file);
|
f->Load(gc, file);
|
||||||
|
delete file;
|
||||||
Tesses::Framework::Filesystem::SubdirFilesystem dir(vfs,path.GetParent(),false);
|
Tesses::Framework::Filesystem::SubdirFilesystem dir(vfs,path.GetParent(),false);
|
||||||
LoadFileWithDependencies(gc,&dir,f);
|
LoadFileWithDependencies(gc,&dir,f);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user