mirror of
https://github.com/reactos/CMake.git
synced 2025-02-22 21:11:43 +00:00

Previously we had a two issues when building cuda executables that required separable compilation. The first was that we didn't propagate FLAGS causing any -arch / -gencode flags to be dropped, and secondly generators such as ninja would use the CXX language flags instead of CUDA when the executable was mixed language.
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
|
|
#ifndef cmLinkLineDeviceComputer_h
|
|
#define cmLinkLineDeviceComputer_h
|
|
|
|
#include "cmLinkLineComputer.h"
|
|
class cmGlobalNinjaGenerator;
|
|
|
|
class cmLinkLineDeviceComputer : public cmLinkLineComputer
|
|
{
|
|
public:
|
|
cmLinkLineDeviceComputer(cmOutputConverter* outputConverter,
|
|
cmStateDirectory stateDir);
|
|
~cmLinkLineDeviceComputer() CM_OVERRIDE;
|
|
|
|
std::string ComputeLinkLibraries(cmComputeLinkInformation& cli,
|
|
std::string const& stdLibString)
|
|
CM_OVERRIDE;
|
|
|
|
std::string GetLinkerLanguage(cmGeneratorTarget* target,
|
|
std::string const& config) CM_OVERRIDE;
|
|
};
|
|
|
|
class cmNinjaLinkLineDeviceComputer : public cmLinkLineDeviceComputer
|
|
{
|
|
public:
|
|
cmNinjaLinkLineDeviceComputer(cmOutputConverter* outputConverter,
|
|
cmStateDirectory stateDir,
|
|
cmGlobalNinjaGenerator const* gg);
|
|
|
|
std::string ConvertToLinkReference(std::string const& input) const
|
|
CM_OVERRIDE;
|
|
|
|
private:
|
|
cmGlobalNinjaGenerator const* GG;
|
|
};
|
|
|
|
#endif
|