Вопрос по cmake, dll, visual-studio – Как установить переменную среды Path с помощью CMake и Visual Studio для запуска теста

40

Я использую CMake для создания файлов проекта Visual Studio. Я хочу запустить исполняемый файл теста после установки переменной среды PATH, чтобы он мог загрузить необходимую DLL. Я пытался в соответствии с обсуждением вhttp://www.mail-archive.com/[email protected]/msg21493.html Но это не работает.

Вы использовали CMake с Visual Studio для этой цели? Пожалуйста, поделитесь своим опытом.

Кроме того, я не нашел простого способа отладки моего сценария CMake, например, чтобы увидеть, какое значение он присваивает переменной PATH. Установка CMake многословно сCMAKE_VERBOSE_MAKEFILE не помогает. Как бы я пошел отладить его сам?

Ваш Ответ

4   ответа
1

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

Например, если в дополнение к установке PATH вы хотите установить другую переменную OTHERVAR нужно было бы изменить строку

<LocalDebuggerEnvironment>PATH=C:\Test</LocalDebuggerEnvironment>

в

<LocalDebuggerEnvironment>PATH=C:\Test &#xA;OTHERVAR="value of OTHERVAR"</LocalDebuggerEnvironment>

Error: User Rate Limit Exceeded&#xA;& Quot; говорит парсеру xml ввести символ LF. Так что несколько переменных определений возможны, если они разделены символом LF (также работает символ CR, но НЕ комбинация CRLF)

Error: User Rate Limit Exceeded&#xA;Error: User Rate Limit Exceeded

9

Просто заметил этот вопрос сейчас. Для отладки файлов cmake я использую

MESSAGE( STATUS "static text ${variable}" )

Мне никогда не приходилось устанавливать путь, чтобы мои тесты запускались. Вы используете CTest? Похоже, что ссылка, по которой вы переходите, используется ctest.

Если бы я пытался заставить это работать, я бы использовалset_tests_properties явно первым.

set_tests_properties(SomeTest PROPERTIES ENVIRONMENT "PATH=c:\somedir;c:\otherdir")

Тогда сделайте это более общим.

4

Вот связанный отчет запроса функции CMake:

http://www.kwwidgets.org/Bug/view.php?id=8884

ОБНОВЛЕНИЕ: Решено согласноError: User Rate Limit Exceeded - спасибо Флориану за комментарий ниже.

Error: User Rate Limit Exceeded"Set Visual Studio project "custom environment variables" setting with CMake"Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededan answerError: User Rate Limit Exceeded
42

Для настройки пользовательских настроек проекта в Visual Studio из CMake вы можете использовать XML-файл в качестве шаблона, который можно настроить из CMake для работы в качестве.user файл.
В моей работе мы используем это для установки пользовательских параметров отладки.

Проверьте каталог, содержащий сгенерированный.vcproj файлы для пользовательских настроек в.userError: User Rate Limit ExceededUserTemplate.vcproj файл, который мы используем.

<?xml version="1.0" encoding="Windows-1252"?>
  <VisualStudioUserFile
    ProjectType="Visual C++"
    Version="9.00"
    ShowAllFiles="false"
    >
    <Configurations>
        <Configuration
            Name="Debug|@[email protected]"
            >
            <DebugSettings
                Command="@[email protected]"
                WorkingDirectory="@[email protected]"
                CommandArguments="@[email protected]"
                Attach="false"
                DebuggerType="3"
                Remote="1"
                RemoteMachine="@[email protected]"
                            <!-- More settings removed for snippet -->
            />
        </Configuration>
            <!-- Rest of Configurations -->

Таким образом, вы можете ввести любые необходимые переменные из CMake в.userError: User Rate Limit Exceeded

# Find user and system name
SET(SYSTEM_NAME $ENV{USERDOMAIN} CACHE STRING SystemName)
SET(USER_NAME $ENV{USERNAME} CACHE STRING UserName)

# Configure the template file
SET(USER_FILE ${_projectName}.vcproj.${SYSTEM_NAME}.${USER_NAME}.user)
SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
CONFIGURE_FILE(UserTemplate.user ${USER_FILE} @ONLY)
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededgithub.com/rpavlik/cmake-modules/blob/master/…Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededCONFIGURE_FILEError: User Rate Limit Exceeded${OUTPUT_PATH}Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы