From 23cecbd077c614164ab0e6df7bccff20bb65fb2f Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 7 Dec 2024 03:31:38 +0100 Subject: [PATCH 1/5] Fix build without --- project/inc/fw.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/project/inc/fw.h b/project/inc/fw.h index 6847a65..f9ec4ef 100644 --- a/project/inc/fw.h +++ b/project/inc/fw.h @@ -15,8 +15,6 @@ #include #include -#include - #undef ERROR /* https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation */ From b398590c9e5e009fbcd18a2f45dd2aeecf9f8e35 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 7 Dec 2024 03:32:55 +0100 Subject: [PATCH 2/5] Use standard main() --- project/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/src/main.c b/project/src/main.c index 90bb6ad..7ddec6b 100644 --- a/project/src/main.c +++ b/project/src/main.c @@ -20,7 +20,7 @@ #define ARGBASE_MAX INT32_MAX -int mainCRTStartup(void) +int main(void) { int ret = 0; From 54d58d6f6b684fa4b1845983f9db905b63e4f732 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 7 Dec 2024 03:48:29 +0100 Subject: [PATCH 3/5] Fix warning C4267 (MSVC) 'function': conversion from 'size_t' to 'int', possible loss of data. --- project/src/ldd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project/src/ldd.c b/project/src/ldd.c index 75e766c..f691abc 100644 --- a/project/src/ldd.c +++ b/project/src/ldd.c @@ -115,11 +115,11 @@ int __impl_static_ldd(struct LDD_ARGS args, const LPCVOID fdat, const LPCWSTR fn if ((strncmp("ext-", namea, 4) == 0 || strncmp("api-", namea, 4) == 0) && !args.bViewAll) continue; - MultiByteToWideChar(CP_UTF8, 0, namea, strlen(namea) + 1, namew, MAX_PATH_W); + MultiByteToWideChar(CP_UTF8, 0, namea, (int)strlen(namea) + 1, namew, MAX_PATH_W); } // check duplicates if `--flatten` enabled - if (args.bFlatten && !dict__add(dict, namew, (wcslen(namew) + 1) * sizeof(WCHAR))) + if (args.bFlatten && !dict__add(dict, namew, (int)(wcslen(namew) + 1) * sizeof(WCHAR))) continue; // print indents From 8969270cd0d3873fb1f520e04d3b3ebe3327544c Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 7 Dec 2024 03:49:11 +0100 Subject: [PATCH 4/5] Fix warning C4996 (MSVC) 'wcsnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _wcsnicmp. --- project/src/ldd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/src/ldd.c b/project/src/ldd.c index f691abc..4524fd9 100644 --- a/project/src/ldd.c +++ b/project/src/ldd.c @@ -219,7 +219,7 @@ int __findlib(const LPCWSTR fname, const LPWSTR fpath, DWORD size) size_t namelen = wcslen(name); if (namelen < MAX_PATH_W) { - found = wcsnicmp(buf, name, namelen) == 0 && *(buf + namelen) == L'\\'; + found = _wcsnicmp(buf, name, namelen) == 0 && *(buf + namelen) == L'\\'; if (found) { WCHAR tmpfile[MAX_PATH_W]; From 37258a50e1581886eac38cf1896a952557411931 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 7 Dec 2024 03:51:53 +0100 Subject: [PATCH 5/5] Add CMake project --- project/CMakeLists.txt | 30 ++++++++++++++++++++++++++++++ project/src/CMakeLists.txt | 22 ++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 project/CMakeLists.txt create mode 100644 project/src/CMakeLists.txt diff --git a/project/CMakeLists.txt b/project/CMakeLists.txt new file mode 100644 index 0000000..e4fd57a --- /dev/null +++ b/project/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.18.4) + +project(lddw + VERSION "0.1.0" + DESCRIPTION "An ldd (List Dynamic Dependencies) implementation for Windows." + HOMEPAGE_URL "https://github.com/Sharp0802/lddw" + LANGUAGES "C" +) + +set(CMAKE_C_EXTENSIONS OFF) +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_VISIBILITY_PRESET hidden) + +set(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/inc") + +if(MSVC) + add_compile_options( + "/W4" + "/WX" + ) +else() + add_compile_options( + "-pedantic" + "-Wall" + "-Wextra" + ) +endif() + +add_subdirectory(src) diff --git a/project/src/CMakeLists.txt b/project/src/CMakeLists.txt new file mode 100644 index 0000000..c7d9b3c --- /dev/null +++ b/project/src/CMakeLists.txt @@ -0,0 +1,22 @@ +add_executable(lddw + "main.c" + + "dict.c" + "ldd.c" + "log.c" +) + +target_compile_definitions(lddw + PRIVATE + "_UNICODE" + "UNICODE" +) + +target_include_directories(lddw + PRIVATE + ${INCLUDE_DIR} +) + +set_target_properties(lddw PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} +)