test: Add a smoke test for resource files and windres
This commit is contained in:
1 parent
e2a03722ac
commit
a815d6557a
4 files changed
+90
-1
No files matched your search
+12
-1
@@ -17,6 +17,7 @@ SRC_PATH=$(word 1, $(dir $(MAKEFILE_LIST)))
|
||||
vpath %.c $(SRC_PATH)
|
||||
vpath %.cpp $(SRC_PATH)
|
||||
vpath %.idl $(SRC_PATH)
|
||||
vpath %.rc $(SRC_PATH)
|
||||
|
||||
ifneq ($(filter %-mingw32, $(MAKE_HOST)),)
|
||||
# If we're running as mingw32-make, we're executing everything in
|
||||
@@ -40,6 +41,7 @@ endif
|
||||
CC = $(CROSS)gcc$(TOOLEXT)
|
||||
CXX = $(CROSS)g++$(TOOLEXT)
|
||||
WIDL = $(CROSS)widl$(TOOLEXT)
|
||||
WINDRES = $(CROSS)windres$(TOOLEXT)
|
||||
CC_UWP = $(CROSS_UWP)clang$(TOOLEXT)
|
||||
|
||||
ifneq ($(COPY),)
|
||||
@@ -82,6 +84,7 @@ ifneq ($(HAVE_OPENMP),)
|
||||
endif
|
||||
TESTS_UWP = uwp-error
|
||||
TESTS_IDL = idltest
|
||||
TESTS_RES = hello-res
|
||||
ifneq ($(HAVE_UWP),)
|
||||
TESTS_OTHER_TARGETS = hello
|
||||
endif
|
||||
@@ -105,6 +108,7 @@ TARGETS_SSP = $(addsuffix $(EXEEXT), $(TESTS_SSP))
|
||||
TARGETS_CFGUARD = $(addsuffix $(EXEEXT), $(TESTS_CFGUARD))
|
||||
TARGETS_FORTIFY = $(addsuffix -fortify$(EXEEXT), $(TESTS_FORTIFY))
|
||||
TARGETS_IDL = $(addsuffix $(EXEEXT), $(TESTS_IDL))
|
||||
TARGETS_RES = $(addsuffix $(EXEEXT), $(TESTS_RES))
|
||||
TARGETS_OTHER_TARGETS = $(addsuffix -mingw32uwp$(EXEEXT), $(TESTS_OTHER_TARGETS))
|
||||
TARGETS_UWP = $(addsuffix -mingw32$(EXEEXT), $(TESTS_UWP))
|
||||
ifneq ($(HAVE_UWP),)
|
||||
@@ -121,7 +125,7 @@ TARGETS = \
|
||||
$(TARGETS_C) $(TARGETS_C_DLL) $(TARGETS_C_LINK_DLL) $(TARGETS_C_NO_BUILTIN) $(TARGETS_C_ANSI_STDIO) \
|
||||
$(TARGETS_CPP) $(TARGETS_CPP_EXCEPTIONS) $(TARGETS_CPP_EXCEPTIONS_OPT) $(TARGETS_CPP_STATIC) $(TARGETS_CPP_DLL) $(TARGETS_CPP_LINK_DLL) \
|
||||
$(TARGETS_SSP) $(TARGETS_CFGUARD) $(TARGETS_FORTIFY) \
|
||||
$(TARGETS_IDL) \
|
||||
$(TARGETS_IDL) $(TARGETS_RES) \
|
||||
$(TARGETS_OTHER_TARGETS) $(TARGETS_UWP) $(TARGETS_UWP_FAIL) \
|
||||
$(TARGETS_ASAN) $(TARGETS_UBSAN) $(TARGETS_ASAN_CFGUARD) \
|
||||
$(TARGETS_OMP)
|
||||
@@ -136,6 +140,7 @@ EXTRAFILES = \
|
||||
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_C_DLL))) \
|
||||
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_CPP_DLL))) \
|
||||
$(addsuffix .h, $(TESTS_IDL)) \
|
||||
$(addsuffix -rc.o, $(TESTS_RES)) \
|
||||
$(addsuffix -asan.pdb, $(TESTS_ASAN)) \
|
||||
$(addsuffix -asan-cfguard.pdb, $(TESTS_ASAN_CFGUARD))
|
||||
|
||||
@@ -198,6 +203,12 @@ $(TARGETS_OMP): %$(EXEEXT): %.c
|
||||
$(TARGETS_IDL): %$(EXEEXT): %.c %.h
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ -I. -lole32
|
||||
|
||||
%.o: %.rc
|
||||
$(WINDRES) $< $@
|
||||
|
||||
$(TARGETS_RES): %$(EXEEXT): %.c %-rc.o
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) $+ -o $@
|
||||
|
||||
$(TARGETS_OTHER_TARGETS): %-mingw32uwp$(EXEEXT): %.c
|
||||
$(CC_UWP) $< -o $@
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Martin Storsjo
|
||||
*
|
||||
* This file is part of llvm-mingw.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "hello-res.h"
|
||||
|
||||
STRINGTABLE {
|
||||
HELLO_STRING "Hello world"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Martin Storsjo
|
||||
*
|
||||
* This file is part of llvm-mingw.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include "hello-res.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
char buf[100];
|
||||
if (LoadStringA(GetModuleHandle(NULL), HELLO_STRING, buf, sizeof(buf)) <= 0) {
|
||||
printf("Unable to load resource string\n");
|
||||
return 1;
|
||||
}
|
||||
printf("Resource string: %s\n", buf);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Martin Storsjo
|
||||
*
|
||||
* This file is part of llvm-mingw.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef HELLO_RES_H
|
||||
#define HELLO_RES_H
|
||||
|
||||
#define HELLO_STRING 1
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user