10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 $(eval $(call IncludeCustomExtension, hotspot/lib/CompileGtest.gmk))
27
28 GTEST_TEST_SRC += $(TOPDIR)/test/hotspot/gtest
29 GTEST_LAUNCHER_SRC := $(TOPDIR)/test/hotspot/gtest/gtestLauncher.cpp
30 GTEST_FRAMEWORK_SRC := $(TOPDIR)/test/fmw/gtest
31
32 # On Windows, there are no internal debug symbols so must set copying to true
33 # to get any at all.
34 ifeq ($(call isTargetOs, windows), true)
35 GTEST_COPY_DEBUG_SYMBOLS := true
36 else
37 GTEST_COPY_DEBUG_SYMBOLS := false
38 endif
39
40 ################################################################################
41
42 ifeq ($(call isTargetOs, windows), true)
43 GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
44 else
45 GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
46
47 $(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
48 $(call MakeDir, $(@D))
49 ( $(CAT) $< ; echo "runUnitTests" ) > $@
50
51 $(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
52 $(call create-mapfile)
53 endif
54
55 # Disabling undef, switch, format-nonliteral and tautological-undefined-compare
56 # warnings for clang because of test source.
57
58 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
59 NAME := jvm, \
60 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
61 OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
62 OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
63 SRC := $(GTEST_TEST_SRC), \
64 EXCLUDES := $(JVM_EXCLUDES), \
65 EXCLUDE_FILES := gtestLauncher.cpp, \
66 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
67 EXTRA_FILES := \
68 $(GTEST_FRAMEWORK_SRC)/googletest/src/gtest-all.cc \
69 $(GTEST_FRAMEWORK_SRC)/googlemock/src/gmock-all.cc, \
70 EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
71 $(BUILD_LIBJVM_ALL_OBJS)), \
72 CFLAGS := $(JVM_CFLAGS) \
73 -I$(GTEST_FRAMEWORK_SRC)/googletest \
74 -I$(GTEST_FRAMEWORK_SRC)/googletest/include \
75 -I$(GTEST_FRAMEWORK_SRC)/googlemock \
76 -I$(GTEST_FRAMEWORK_SRC)/googlemock/include \
77 $(addprefix -I,$(GTEST_TEST_SRC)), \
78 CFLAGS_windows := -EHsc, \
79 CFLAGS_macosx := -DGTEST_OS_MAC=1, \
80 DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \
81 undef, \
82 DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
83 undef switch format-nonliteral tautological-undefined-compare \
84 self-assign-overloaded, \
85 LDFLAGS := $(JVM_LDFLAGS), \
86 LIBS := $(JVM_LIBS), \
87 OPTIMIZATION := $(JVM_OPTIMIZATION), \
88 MAPFILE := $(GTEST_JVM_MAPFILE), \
89 USE_MAPFILE_FOR_SYMBOLS := true, \
90 COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
91 ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
92 STRIP_SYMBOLS := false, \
93 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
94 PRECOMPILED_HEADER_EXCLUDE := gtest-all.cc gmock-all.cc gtestMain.cpp, \
95 ))
96
97 TARGETS += $(BUILD_GTEST_LIBJVM)
98
99 ################################################################################
100
101 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
102 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
103 NAME := gtestLauncher, \
104 TYPE := EXECUTABLE, \
105 OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
106 EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
107 OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
108 CFLAGS := $(JVM_CFLAGS) \
109 -I$(GTEST_FRAMEWORK_SRC)/googletest \
110 -I$(GTEST_FRAMEWORK_SRC)/googletest/include \
111 -I$(GTEST_FRAMEWORK_SRC)/googlemock \
112 -I$(GTEST_FRAMEWORK_SRC)/googlemock/include, \
113 LDFLAGS := $(LDFLAGS_JDKEXE), \
114 LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
115 LIBS_linux := $(LIBCXX), \
116 LIBS_unix := -ljvm, \
|
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 $(eval $(call IncludeCustomExtension, hotspot/lib/CompileGtest.gmk))
27
28 GTEST_TEST_SRC += $(TOPDIR)/test/hotspot/gtest
29 GTEST_LAUNCHER_SRC := $(TOPDIR)/test/hotspot/gtest/gtestLauncher.cpp
30
31 # On Windows, there are no internal debug symbols so must set copying to true
32 # to get any at all.
33 ifeq ($(call isTargetOs, windows), true)
34 GTEST_COPY_DEBUG_SYMBOLS := true
35 else
36 GTEST_COPY_DEBUG_SYMBOLS := false
37 endif
38
39 ################################################################################
40
41 # Disabling all warnings in gtest source code
42
43 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBGTEST, \
44 NAME := gtest, \
45 TYPE := STATIC_LIBRARY, \
46 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
47 OUTPUT_DIR := $(JVM_OUTPUTDIR)/libgtest, \
48 OBJECT_DIR := $(JVM_OUTPUTDIR)/libgtest/objs, \
49 SRC := \
50 $(GTEST_FRAMEWORK_SRC)/googletest/src \
51 $(GTEST_FRAMEWORK_SRC)/googlemock/src, \
52 INCLUDE_FILES := gtest-all.cc gmock-all.cc, \
53 CFLAGS := $(filter-out $(WARNING_CFLAGS_JVM), $(JVM_CFLAGS)) \
54 -w \
55 -I$(GTEST_FRAMEWORK_SRC)/googletest \
56 -I$(GTEST_FRAMEWORK_SRC)/googletest/include \
57 -I$(GTEST_FRAMEWORK_SRC)/googlemock \
58 -I$(GTEST_FRAMEWORK_SRC)/googlemock/include, \
59 CFLAGS_windows := -EHsc, \
60 CFLAGS_macosx := -DGTEST_OS_MAC=1, \
61 OPTIMIZATION := $(JVM_OPTIMIZATION), \
62 COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
63 ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
64 STRIP_SYMBOLS := false, \
65 ))
66
67 TARGETS += $(BUILD_GTEST_LIBGTEST)
68
69 ################################################################################
70
71 ifeq ($(call isTargetOs, windows), true)
72 GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
73 else
74 GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
75
76 $(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
77 $(call MakeDir, $(@D))
78 ( $(CAT) $< ; echo "runUnitTests" ) > $@
79
80 $(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
81 $(call create-mapfile)
82 endif
83
84 # Disabling undef, switch, format-nonliteral and tautological-undefined-compare
85 # warnings for clang because of test source.
86
87 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
88 NAME := jvm, \
89 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
90 OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
91 OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
92 SRC := $(GTEST_TEST_SRC), \
93 EXCLUDES := $(JVM_EXCLUDES), \
94 EXCLUDE_FILES := gtestLauncher.cpp, \
95 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
96 EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
97 $(BUILD_LIBJVM_ALL_OBJS)), \
98 CFLAGS := $(JVM_CFLAGS) \
99 -I$(GTEST_FRAMEWORK_SRC)/googletest/include \
100 -I$(GTEST_FRAMEWORK_SRC)/googlemock/include \
101 $(addprefix -I,$(GTEST_TEST_SRC)), \
102 CFLAGS_windows := -EHsc, \
103 CFLAGS_macosx := -DGTEST_OS_MAC=1, \
104 DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \
105 undef, \
106 DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
107 undef switch format-nonliteral tautological-undefined-compare \
108 self-assign-overloaded, \
109 LDFLAGS := $(JVM_LDFLAGS), \
110 LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/libgtest, \
111 LIBS := $(JVM_LIBS), \
112 LIBS_unix := -lgtest, \
113 LIBS_windows := $(JVM_OUTPUTDIR)/libgtest/gtest.lib, \
114 OPTIMIZATION := $(JVM_OPTIMIZATION), \
115 MAPFILE := $(GTEST_JVM_MAPFILE), \
116 USE_MAPFILE_FOR_SYMBOLS := true, \
117 COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
118 ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
119 STRIP_SYMBOLS := false, \
120 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
121 PRECOMPILED_HEADER_EXCLUDE := gtestMain.cpp, \
122 ))
123
124 $(BUILD_GTEST_LIBJVM) : $(BUILD_GTEST_LIBGTEST)
125
126 TARGETS += $(BUILD_GTEST_LIBJVM)
127
128 ################################################################################
129
130 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
131 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
132 NAME := gtestLauncher, \
133 TYPE := EXECUTABLE, \
134 OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
135 EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
136 OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
137 CFLAGS := $(JVM_CFLAGS) \
138 -I$(GTEST_FRAMEWORK_SRC)/googletest \
139 -I$(GTEST_FRAMEWORK_SRC)/googletest/include \
140 -I$(GTEST_FRAMEWORK_SRC)/googlemock \
141 -I$(GTEST_FRAMEWORK_SRC)/googlemock/include, \
142 LDFLAGS := $(LDFLAGS_JDKEXE), \
143 LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
144 LIBS_linux := $(LIBCXX), \
145 LIBS_unix := -ljvm, \
|