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)
|
||||
|
||||
#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_SHARED "Enable Tesses CrossLang shared libraries" ON)
|
||||
option(CROSSLANG_ENABLE_BINARIES "Enable Tesses CrossLang binaries" ON)
|
||||
@@ -129,6 +129,9 @@ target_include_directories(${CROSSLANG_TARGET_NAME}
|
||||
endfunction()
|
||||
|
||||
list(APPEND CROSSLANG_SOURCE
|
||||
src/assembler/asm.cpp
|
||||
src/assembler/disasm.cpp
|
||||
src/assembler/merge.cpp
|
||||
src/compiler/codegen.cpp
|
||||
src/compiler/lexer.cpp
|
||||
src/compiler/parser.cpp
|
||||
@@ -261,11 +264,11 @@ if (APPLE)
|
||||
else()
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
if(NOT CROSSLANG_SHELLONLY)
|
||||
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})
|
||||
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})
|
||||
if(NOT WIN32)
|
||||
@@ -275,19 +278,22 @@ target_link_libraries(crossc PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossvm PUBLIC crosslang_shared)
|
||||
target_link_libraries(crossint 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(crossarchivecreate PUBLIC crosslang_shared)
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_shared)
|
||||
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(crossvm src/crosslangvm.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(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})
|
||||
if(NOT WIN32)
|
||||
@@ -297,18 +303,22 @@ target_link_libraries(crossc PUBLIC crosslang_static)
|
||||
target_link_libraries(crossvm PUBLIC crosslang_static)
|
||||
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)
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC crosslang_static)
|
||||
endif()
|
||||
endif()
|
||||
add_executable(crosslang src/crosslang.cpp ${CROSSLANG_WIN32_EXE_SRC})
|
||||
|
||||
target_link_libraries(crosslang PUBLIC crosslang_static)
|
||||
|
||||
else()
|
||||
if(NOT CROSSLANG_SHELLONLY)
|
||||
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(crossint src/crosslanginterperter.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(crossarchivecreate src/crossarchivecreate.cpp ${CROSSLANG_SOURCE} ${CROSSLANG_WIN32_EXE_SRC})
|
||||
if(NOT WIN32)
|
||||
@@ -317,13 +327,14 @@ endif()
|
||||
CROSSLANG_LINK_DEPS(crossc)
|
||||
CROSSLANG_LINK_DEPS(crossvm)
|
||||
CROSSLANG_LINK_DEPS(crossint)
|
||||
CROSSLANG_LINK_DEPS(crosslang)
|
||||
|
||||
CROSSLANG_LINK_DEPS(crossdump)
|
||||
CROSSLANG_LINK_DEPS(crossarchiveextract)
|
||||
CROSSLANG_LINK_DEPS(crossarchivecreate)
|
||||
if(NOT WIN32)
|
||||
CROSSLANG_LINK_DEPS(crossthumbnailer)
|
||||
endif()
|
||||
|
||||
if(CROSSLANG_FETCHCONTENT)
|
||||
target_link_libraries(crossc PUBLIC tessesframework)
|
||||
target_link_libraries(crossvm PUBLIC tessesframework)
|
||||
@@ -347,6 +358,17 @@ if(NOT WIN32)
|
||||
target_link_libraries(crossthumbnailer PUBLIC TessesFramework::tessesframework)
|
||||
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()
|
||||
install(TARGETS crossc DESTINATION bin)
|
||||
install(TARGETS crossvm DESTINATION bin)
|
||||
|
||||
@@ -2568,4 +2568,8 @@ class GC {
|
||||
TObject GetClassInfo(GCList& ls,TFile* f, uint32_t index);
|
||||
|
||||
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");
|
||||
std::string filename="/" + name;
|
||||
|
||||
|
||||
Tesses::Framework::Streams::Stream* file;
|
||||
if(vfs->RegularFileExists(filename) && (file = vfs->OpenFile(filename,"rb")) != nullptr)
|
||||
if(vfs->RegularFileExists(filename))
|
||||
{
|
||||
|
||||
Tesses::Framework::Streams::Stream* file = vfs->OpenFile(filename,"rb");
|
||||
GCList ls(gc);
|
||||
TFile* f = TFile::Create(ls);
|
||||
f->Load(gc, file);
|
||||
delete file;
|
||||
LoadFileWithDependencies(gc, vfs, f);
|
||||
}
|
||||
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)
|
||||
{
|
||||
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);
|
||||
TFile* f = TFile::Create(ls);
|
||||
f->Load(gc, file);
|
||||
delete file;
|
||||
Tesses::Framework::Filesystem::SubdirFilesystem dir(vfs,path.GetParent(),false);
|
||||
LoadFileWithDependencies(gc,&dir,f);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user