簡體   English   中英

如何設置CMAKE_INTDIR或CMAKE_CFG_INTDIR以刪除項目配置?

[英]How to set CMAKE_INTDIR or CMAKE_CFG_INTDIR to remove the project configuration?

現在我正在使用CMake創建一個VC 10項目。 我發現的一個問題是輸出庫或執行程序的路徑與項目配置(調試或發布)相關聯。 為了說明它,我舉了以下例子:

  cmake_minimum_required( VERSION 2.6 )
  project (test) 
  add_definitions (-DEXP_STL )
  add_library(lib1 SHARED lib1.cxx)
  set_target_properties(lib1 PROPERTIES LINK_INTERFACE_LIBRARIES "")
  set(LIBRARY_OUTPUT_PATH ${test_SOURCE_DIR})

腳本中的最后一個命令表示我想將輸出庫( lib1 )放在${test_SOURCE_DIR}目錄中。 但是,輸出庫位於${test_SOURCE_DIR}/Debug 我想知道如何確保輸出庫完全在我設置的路徑中。 謝謝!

BWT :我提出這個問題的原因是因為在Linux開發環境中,輸出庫或執行程序路徑正是您使用set(LIBRARY_OUTPUT_PATH ...)函數set(LIBRARY_OUTPUT_PATH ...)的路徑。 我希望得到一致的結果。

這個問題被認為是重復的,一個可能的解決方案如下:

if (WIN32)
    set(myoutputdirectory ${your_source_file_SOURCE_DIR}/output/win/32)
elseif (CMAKE_COMPILER_IS_GNUCC)
    set(myoutputdirectory ${your_source_file_SOURCE_DIR}/output/linux/32)
elseif(APPLE)
    set(myoutputdirectory ${your_source_file_SOURCE_DIR}/output/mac/32)
endif (WIN32)
# set output parth
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${myoutputdirectory} )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${myoutputdirectory} )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${myoutputdirectory} )
# for multi-config builds (e.g. msvc)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
    string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
    set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${myoutputdirectory} )
    set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${myoutputdirectory} )
    set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${myoutputdirectory} )
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM