cmake_minimum_required(VERSION 3.18) project (MixedLanguage C CXX HIP) set(CMAKE_HIP_STANDARD 14) set(CMAKE_CXX_STANDARD 14) #Goal for this example: #make sure that we can build multiple languages into targets #and have the link language always be HIP add_library(MixedSharedLib SHARED shared.c) add_library(MixedObjectLib OBJECT shared.cxx shared.hip) set_target_properties(MixedObjectLib PROPERTIES POSITION_INDEPENDENT_CODE ON) target_link_libraries(MixedSharedLib PRIVATE MixedObjectLib) add_library(MixedStaticLib STATIC static.c static.cxx static.hip) set_target_properties(MixedStaticLib PROPERTIES POSITION_INDEPENDENT_CODE ON) add_executable(HIPMixedLanguage main.cxx) target_link_libraries(HIPMixedLanguage PRIVATE MixedStaticLib MixedSharedLib) add_executable(HIPMixedLanguageCXX main.cxx) target_link_libraries(HIPMixedLanguageCXX PRIVATE MixedStaticLib MixedSharedLib) set_property(TARGET HIPMixedLanguageCXX PROPERTY LINKER_LANGUAGE CXX)