################################################################################
# Copyright IBM Corp. and others 2017
#
# This program and the accompanying materials are made available under
# the terms of the Eclipse Public License 2.0 which accompanies this
# distribution and is available at https://www.eclipse.org/legal/epl-2.0/
# or the Apache License, Version 2.0 which accompanies this distribution and
# is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# This Source Code may also be made available under the following
# Secondary Licenses when the conditions for such availability set
# forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
# General Public License, version 2 with the GNU Classpath
# Exception [1] and GNU General Public License, version 2 with the
# OpenJDK Assembly Exception [2].
#
# [1] https://www.gnu.org/software/classpath/license.html
# [2] https://openjdk.org/legal/assembly-exception.html
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
################################################################################

set(gc_trace_sources
	Tgc.cpp
	TgcAllocation.cpp
	TgcAllocationContext.cpp
	TgcBacktrace.cpp
	TgcCardCleaning.cpp
	TgcConcurrent.cpp
	TgcConcurrentcardcleaning.cpp
	TgcCopyForward.cpp
	TgcDump.cpp
	TgcExcessivegc.cpp
	TgcExclusiveaccess.cpp
	TgcExtensions.cpp
	TgcFreelist.cpp
	TgcHeap.cpp
	TgcNuma.cpp
	TgcParallel.cpp
	TgcRootScanner.cpp
	TgcScavenger.cpp
	TgcTerse.cpp
)

j9vm_add_library(j9gctrc STATIC
	${gc_trace_sources}
)

target_include_directories(j9gctrc
	PRIVATE
		${j9vm_SOURCE_DIR}/gc_trace_standard
		${j9vm_SOURCE_DIR}/gc_trace_vlhgc
)

target_link_libraries(j9gctrc
	PRIVATE
		j9vm_interface
		j9vm_gc_includes

		omrgc
)

if(OMR_MIXED_REFERENCES_MODE_STATIC)
	j9vm_add_library(j9gctrc_full STATIC
		${gc_trace_sources}
	)

	target_include_directories(j9gctrc_full
		PRIVATE
			${j9vm_SOURCE_DIR}/gc_trace_standard
			${j9vm_SOURCE_DIR}/gc_trace_vlhgc
	)

	target_link_libraries(j9gctrc_full
		PRIVATE
			j9vm_interface
			j9vm_gc_includes

			omrgc_full
	)
endif()
