diff --git a/src/system/dmod_system.c b/src/system/dmod_system.c index b59b2db..87c1413 100644 --- a/src/system/dmod_system.c +++ b/src/system/dmod_system.c @@ -549,6 +549,7 @@ bool Dmod_FindModuleFile(const char* ModuleName, const char* ArchName, char* out ArchName = DMOD_ARCH; } + bool crossplatform = Dmod_IsCrossplatformMode(); Dmod_SearchNode_t* searchNode = Dmod_Hlp_PrepareModulesSearchNodes(); Dmod_SearchNode_t* currentNode = searchNode; while( currentNode != NULL ) @@ -560,13 +561,12 @@ bool Dmod_FindModuleFile(const char* ModuleName, const char* ArchName, char* out ( PrepareModulePath(repoDir, ModuleName, false, outFilePath, MaxLength) && Dmod_FileAvailable(outFilePath) - && CheckModuleArchitecture(outFilePath, ArchName) + && (crossplatform || CheckModuleArchitecture(outFilePath, ArchName)) ) || ( PrepareModulePath(repoDir, ModuleName, true, outFilePath, MaxLength) && Dmod_FileAvailable(outFilePath) - && CheckModuleArchitecture(outFilePath, ArchName - ) + && (crossplatform || CheckModuleArchitecture(outFilePath, ArchName)) ) ) { diff --git a/tools-cfg.cmake b/tools-cfg.cmake new file mode 100644 index 0000000..1ee55e8 --- /dev/null +++ b/tools-cfg.cmake @@ -0,0 +1,86 @@ +#================================================================================================================================ +# Default tools configuration +#================================================================================================================================ + +# +# Default configuration options +# +set(DMOD_USE_STDLIB ON ) +set(DMOD_USE_STDIO ON ) +set(DMOD_USE_ASSERT ON ) +set(DMOD_USE_PTHREAD ON ) +set(DMOD_USE_MMAN ON ) +set(DMOD_BUILD_TESTS ON ) +set(DMOD_BUILD_EXAMPLES ON ) +set(DMOD_BUILD_TOOLS ON ) + +# +# Toolchain configuration +# +if(NOT DEFINED COMPILER_PATH) + set(COMPILER_PATH "") +endif() +if(NOT DEFINED CROSS_COMPILE) + set(CROSS_COMPILE "") +endif() + + + +# +# Toolchain configuration +# +if(NOT DEFINED CROSS_COMPILE) + set(CROSS_COMPILE "") +endif() + +find_program(GCC ${CROSS_COMPILE}gcc) +if(NOT GCC) + message(FATAL_ERROR "GCC compiler not found") +endif() + +find_program(GXX ${CROSS_COMPILE}g++) +if(NOT GXX) + message(FATAL_ERROR "G++ compiler not found") +endif() + +find_program(LD ${CROSS_COMPILE}ld) +if(NOT LD) + message(FATAL_ERROR "Linker not found") +endif() + +find_program(OBJDUMP ${CROSS_COMPILE}objdump) +if(NOT OBJDUMP) + message(FATAL_ERROR "objdump not found") +endif() + +find_program(OBJCOPY ${CROSS_COMPILE}objcopy) +if(NOT OBJCOPY) + message(FATAL_ERROR "objcopy not found") +endif() + +find_program(AR ${CROSS_COMPILE}ar) +if(NOT AR) + message(FATAL_ERROR "ar not found") +endif() + +find_program(SIZE ${CROSS_COMPILE}size) +if(NOT SIZE) + message(FATAL_ERROR "size not found") +endif() + +# ============================================================================== +# CMake Configuration +# ============================================================================== +set(CMAKE_C_COMPILER "${GCC}" CACHE STRING "C compiler") +set(CMAKE_CXX_COMPILER "${GXX}" CACHE STRING "C++ compiler") +set(CMAKE_LINKER "${LD}" CACHE STRING "Linker") +set(CMAKE_OBJDUMP "${OBJDUMP}" CACHE STRING "Objdump") +set(CMAKE_OBJCOPY "${OBJCOPY}" CACHE STRING "Objcopy") +set(CMAKE_SIZE "${SIZE}" CACHE STRING "Size") +set(CMAKE_AR "${AR}" CACHE STRING "Archiver") +set(MAKE make CACHE STRING "Make") +set(MKDIR mkdir CACHE STRING "Mkdir") +set(RM rm CACHE STRING "Rm") +set(CMAKE_C_FLAGS "-Wall -Werror -std=c11 ${CPUCONFIG_CFLAGS}") +set(CMAKE_CXX_FLAGS "-Wall -Werror -std=c++17 ${CPUCONFIG_CXXFLAGS}") +set(CMAKE_LFLAGS "${CPUCONFIG_LDFLAGS}") \ No newline at end of file diff --git a/tools/system/CMakeLists.txt b/tools/system/CMakeLists.txt index 79946d0..2127e69 100644 --- a/tools/system/CMakeLists.txt +++ b/tools/system/CMakeLists.txt @@ -2,7 +2,7 @@ add_subdirectory(todmfc) add_subdirectory(todmp) add_subdirectory(todmd) add_subdirectory(todmm) -add_subdirectory(dmf-get) +#add_subdirectory(dmf-get) add_subdirectory(dmf-man) add_subdirectory(whereisdmf) add_subdirectory(mkdmrpkg) \ No newline at end of file