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 %.c $(SRC_PATH)
|
||||||
vpath %.cpp $(SRC_PATH)
|
vpath %.cpp $(SRC_PATH)
|
||||||
vpath %.idl $(SRC_PATH)
|
vpath %.idl $(SRC_PATH)
|
||||||
|
vpath %.rc $(SRC_PATH)
|
||||||
|
|
||||||
ifneq ($(filter %-mingw32, $(MAKE_HOST)),)
|
ifneq ($(filter %-mingw32, $(MAKE_HOST)),)
|
||||||
# If we're running as mingw32-make, we're executing everything in
|
# If we're running as mingw32-make, we're executing everything in
|
||||||
@@ -40,6 +41,7 @@ endif
|
|||||||
CC = $(CROSS)gcc$(TOOLEXT)
|
CC = $(CROSS)gcc$(TOOLEXT)
|
||||||
CXX = $(CROSS)g++$(TOOLEXT)
|
CXX = $(CROSS)g++$(TOOLEXT)
|
||||||
WIDL = $(CROSS)widl$(TOOLEXT)
|
WIDL = $(CROSS)widl$(TOOLEXT)
|
||||||
|
WINDRES = $(CROSS)windres$(TOOLEXT)
|
||||||
CC_UWP = $(CROSS_UWP)clang$(TOOLEXT)
|
CC_UWP = $(CROSS_UWP)clang$(TOOLEXT)
|
||||||
|
|
||||||
ifneq ($(COPY),)
|
ifneq ($(COPY),)
|
||||||
@@ -82,6 +84,7 @@ ifneq ($(HAVE_OPENMP),)
|
|||||||
endif
|
endif
|
||||||
TESTS_UWP = uwp-error
|
TESTS_UWP = uwp-error
|
||||||
TESTS_IDL = idltest
|
TESTS_IDL = idltest
|
||||||
|
TESTS_RES = hello-res
|
||||||
ifneq ($(HAVE_UWP),)
|
ifneq ($(HAVE_UWP),)
|
||||||
TESTS_OTHER_TARGETS = hello
|
TESTS_OTHER_TARGETS = hello
|
||||||
endif
|
endif
|
||||||
@@ -105,6 +108,7 @@ TARGETS_SSP = $(addsuffix $(EXEEXT), $(TESTS_SSP))
|
|||||||
TARGETS_CFGUARD = $(addsuffix $(EXEEXT), $(TESTS_CFGUARD))
|
TARGETS_CFGUARD = $(addsuffix $(EXEEXT), $(TESTS_CFGUARD))
|
||||||
TARGETS_FORTIFY = $(addsuffix -fortify$(EXEEXT), $(TESTS_FORTIFY))
|
TARGETS_FORTIFY = $(addsuffix -fortify$(EXEEXT), $(TESTS_FORTIFY))
|
||||||
TARGETS_IDL = $(addsuffix $(EXEEXT), $(TESTS_IDL))
|
TARGETS_IDL = $(addsuffix $(EXEEXT), $(TESTS_IDL))
|
||||||
|
TARGETS_RES = $(addsuffix $(EXEEXT), $(TESTS_RES))
|
||||||
TARGETS_OTHER_TARGETS = $(addsuffix -mingw32uwp$(EXEEXT), $(TESTS_OTHER_TARGETS))
|
TARGETS_OTHER_TARGETS = $(addsuffix -mingw32uwp$(EXEEXT), $(TESTS_OTHER_TARGETS))
|
||||||
TARGETS_UWP = $(addsuffix -mingw32$(EXEEXT), $(TESTS_UWP))
|
TARGETS_UWP = $(addsuffix -mingw32$(EXEEXT), $(TESTS_UWP))
|
||||||
ifneq ($(HAVE_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_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_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_SSP) $(TARGETS_CFGUARD) $(TARGETS_FORTIFY) \
|
||||||
$(TARGETS_IDL) \
|
$(TARGETS_IDL) $(TARGETS_RES) \
|
||||||
$(TARGETS_OTHER_TARGETS) $(TARGETS_UWP) $(TARGETS_UWP_FAIL) \
|
$(TARGETS_OTHER_TARGETS) $(TARGETS_UWP) $(TARGETS_UWP_FAIL) \
|
||||||
$(TARGETS_ASAN) $(TARGETS_UBSAN) $(TARGETS_ASAN_CFGUARD) \
|
$(TARGETS_ASAN) $(TARGETS_UBSAN) $(TARGETS_ASAN_CFGUARD) \
|
||||||
$(TARGETS_OMP)
|
$(TARGETS_OMP)
|
||||||
@@ -136,6 +140,7 @@ EXTRAFILES = \
|
|||||||
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_C_DLL))) \
|
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_C_DLL))) \
|
||||||
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_CPP_DLL))) \
|
$(addprefix lib, $(addsuffix .dll.a, $(TESTS_CPP_DLL))) \
|
||||||
$(addsuffix .h, $(TESTS_IDL)) \
|
$(addsuffix .h, $(TESTS_IDL)) \
|
||||||
|
$(addsuffix -rc.o, $(TESTS_RES)) \
|
||||||
$(addsuffix -asan.pdb, $(TESTS_ASAN)) \
|
$(addsuffix -asan.pdb, $(TESTS_ASAN)) \
|
||||||
$(addsuffix -asan-cfguard.pdb, $(TESTS_ASAN_CFGUARD))
|
$(addsuffix -asan-cfguard.pdb, $(TESTS_ASAN_CFGUARD))
|
||||||
|
|
||||||
@@ -198,6 +203,12 @@ $(TARGETS_OMP): %$(EXEEXT): %.c
|
|||||||
$(TARGETS_IDL): %$(EXEEXT): %.c %.h
|
$(TARGETS_IDL): %$(EXEEXT): %.c %.h
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ -I. -lole32
|
$(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
|
$(TARGETS_OTHER_TARGETS): %-mingw32uwp$(EXEEXT): %.c
|
||||||
$(CC_UWP) $< -o $@
|
$(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