日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CMake 手册详解(二十二)

發(fā)布時(shí)間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CMake 手册详解(二十二) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址 http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html


CMD#65:?separate_arguments?將空格分隔的參數(shù)解析為一個(gè)分號(hào)分隔的list。

separate_arguments(<var> <UNIX|WINDOWS>_COMMAND "<args>")

  解析一個(gè)unix或者windows風(fēng)格的命令行字符串"<args>",并將結(jié)果以分號(hào)分隔的list的形式存儲(chǔ)到<var>中。整個(gè)命令行都必須從這個(gè)"<args>"參數(shù)中給出。

  UNIX_COMMAND模式以沒(méi)有被括起來(lái)的白字符為參數(shù)的分隔符。它可以識(shí)別單引號(hào)和雙引號(hào)的引號(hào)對(duì)。反斜杠可以對(duì)下一個(gè)字符的字面值轉(zhuǎn)義(\",就是");沒(méi)有其他特殊的轉(zhuǎn)義字符(例如\n就是n)。

  WINDOWS_COMMAND模式按照與運(yùn)行時(shí)庫(kù)相同的語(yǔ)法解析一個(gè)windows命令行,在啟動(dòng)(starrtup)時(shí)構(gòu)造argv。它使用沒(méi)有被雙引號(hào)括起來(lái)的白字符來(lái)分隔參數(shù)。反斜杠維持其字面含義,除非它們?cè)陔p引號(hào)之前。更多細(xì)節(jié),參見(jiàn)MSDN的文章:"Parsing C Command-Line Arguments"。

separate_arguments(VARIABLE)

  將VARIABLE的值轉(zhuǎn)換為一個(gè)分號(hào)分隔的list。所有的空格會(huì)被替換為';'。該命令可以用來(lái)輔助生成命令行。

CMD#66:?set?將一個(gè)CMAKE變量設(shè)置為給定值。

set(<variable> <value> [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])

  將變量<variable>的值設(shè)置為<value>。在<variable>被設(shè)置之前,<value>會(huì)被展開(kāi)。如果有CACHE選項(xiàng),那么<variable>就會(huì)添加到cache中;這時(shí)<type>和<docstring>是必需的。<type>被CMake GUI用來(lái)選擇一個(gè)窗口,讓用戶設(shè)置值。<type>可以是下述值中的一個(gè):

FILEPATH = 文件選擇對(duì)話框。 PATH = 路徑選擇對(duì)話框。 STRING = 任意的字符串。 BOOL = 布爾值選擇復(fù)選框。 INTERNAL = 不需要GUI輸入端。(適用于永久保存的變量)。

  如果<type>是內(nèi)部的(INTERNAL),那么<value>總是會(huì)被寫(xiě)入到cache中,并替換任何已經(jīng)存在于cache中的值。如果它不是一個(gè)cache變量,那么這個(gè)變量總是會(huì)寫(xiě)入到當(dāng)前的makefile中。FORCE選項(xiàng)將覆蓋cache值,從而去掉任何用戶帶來(lái)的改變。

  如果指定了PARENT_SCOPE選項(xiàng),變量<variable>將會(huì)被設(shè)置為當(dāng)前作用域之上的作用域中。每一個(gè)新的路徑或者函數(shù)都可以創(chuàng)建一個(gè)新作用域。該命令將會(huì)把一個(gè)變量的值設(shè)置到父路徑或者調(diào)用函數(shù)中(或者任何類似的可用的情形中。)

  如果沒(méi)有指定<value>,那么這個(gè)變量就會(huì)被撤銷而不是被設(shè)置。另見(jiàn):unset()命令。

set(<variable> <value1> ... <valueN>)

  在這種情形下,<variable>被設(shè)置為一個(gè)各個(gè)值之間由分號(hào)分隔的list。

  <variable>可以是環(huán)境變量,比如:

set( ENV{PATH} /home/martink )

  在這種情形下,環(huán)境變量將會(huì)被設(shè)置。

CMD#67:?set_directory_properties??設(shè)置某個(gè)路徑的一種屬性。

set_directory_properties(PROPERTIES prop1 value1 prop2 value2)

  為當(dāng)前的路徑及其子路徑設(shè)置一種屬性。如果該屬性不存在,CMake將會(huì)報(bào)告一個(gè)錯(cuò)誤。屬性包括:INCLUDE_DIRECTORIES, LINK_DIRECTORIES, INCLUDE_REGULAR_EXPRESSION, 以及ADDITIONAL_MAKE_CLEAN_FILES共四種。ADDITIONAL_MAKE_CLEAN_FILES是一個(gè)文件名的list,其中包含有"make clean"階段會(huì)被清除掉的文件。

CMD#68:?set_property??在給定的作用域內(nèi)設(shè)置一個(gè)命名的屬性。

set_property(<GLOBAL | DIRECTORY [dir] | TARGET [target1 [target2 ...]] | SOURCE [src1 [src2 ...]] | TEST [test1 [test2 ...]] | CACHE [entry1 [entry2 ...]]> [APPEND] PROPERTY <name> [value1 [value2 ...]])

  為作用域里的0個(gè)或多個(gè)對(duì)象設(shè)置一種屬性。第一個(gè)參數(shù)決定了屬性可以影響到的作用域。他必須是下述值之一:GLOBAL,全局作用域,唯一,并且不接受名字。DIRECTORY,路徑作用域,默認(rèn)為當(dāng)前路徑,但是也可以用全路徑或相對(duì)路徑指定其他值。TARGET,目標(biāo)作用域,可以命名0個(gè)或多個(gè)已有的目標(biāo)。SOURCE,源作用域,可以命名0個(gè)或多個(gè)源文件。注意,源文件屬性只對(duì)加到相同路徑(CMakeLists.txt)中的目標(biāo)是可見(jiàn)的。TEST 測(cè)試作用域可以命名0個(gè)或多個(gè)已有的測(cè)試。CACHE作用域必須指定0個(gè)或多個(gè)cache中已有的條目。

  PROPERTY選項(xiàng)是必須的,并且要緊跟在待設(shè)置的屬性的后面。剩余的參數(shù)用來(lái)組成屬性值,該屬性值是一個(gè)以分號(hào)分隔的list。如果指定了APPEND選項(xiàng),該list將會(huì)附加在已有的屬性值之后。

CMD#69: set_source_files_properties?源文件有一些屬性來(lái)可以改變它們構(gòu)建的方式。

set_source_files_properties([file1 [file2 [...]]] PROPERTIES prop1 value1 [prop2 value2 [...]])

  以鍵/值對(duì)的方式設(shè)置與源文件相關(guān)的那些屬性值。那些CMake中的源文件屬性,參見(jiàn)關(guān)于屬性的相關(guān)文檔。不能被識(shí)別的屬性將會(huì)被忽略。源文件屬性只對(duì)同一路徑(CMakeLists.txt)中添加的目標(biāo)可見(jiàn)。

CMD#70:?set_target_properties??設(shè)置目標(biāo)的一些屬性來(lái)改變它們構(gòu)建的方式。

set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...)

  為一個(gè)目標(biāo)設(shè)置屬性。該命令的語(yǔ)法是列出所有你想要變更的文件,然后提供你想要設(shè)置的值。你能夠使用任何你想要的屬性/值對(duì),并且在隨后的代碼中調(diào)用GET_TARGET_PROPERTY命令取出屬性的值。

  影響一個(gè)目標(biāo)輸出文件的名字的屬性詳述如下。PREFIX和SUFFIX屬性覆蓋了默認(rèn)的目標(biāo)名前綴(比如lib)和后綴(比如.so)。IMPORT_PREFIX和IMPORT_SUFFIX是與之等價(jià)的屬性,不過(guò)針對(duì)的是DLL(共享庫(kù)目標(biāo))的導(dǎo)入庫(kù)。在構(gòu)建目標(biāo)時(shí),OUTPUT_NAME屬性設(shè)置目標(biāo)的真實(shí)名字,并且可以用來(lái)輔助創(chuàng)建兩個(gè)具有相同名字的目標(biāo),即使CMake需要唯一的邏輯目標(biāo)名。<CONFIG>_OUTPUT_NAME可以為不同的配置設(shè)置輸出的目標(biāo)名字。當(dāng)目標(biāo)在指定的配置名<CONFIG>(全部大寫(xiě),例如DEBUG_POSTFIX)下被構(gòu)建時(shí),<CONFIG>_POSTFIX為目標(biāo)的真實(shí)名字設(shè)置一個(gè)后綴。該屬性的值在目標(biāo)創(chuàng)建時(shí)被初始化為CMAKE_<CONFIG>_POSTFIX的值(可執(zhí)行目標(biāo)除外,因?yàn)檩^早的CMake版本不會(huì)為可執(zhí)行文件使用這個(gè)屬性。)

  LINK_FLAGS屬性可以用來(lái)為一個(gè)目標(biāo)的鏈接階段添加額外的標(biāo)志。LINK_FLAGS_<CONFIG>將為配置<CONFIG>添加鏈接標(biāo)志,例如DEBUG,RELEASE,MINSIZEREL,RELWITHDEBINFO。DEFINE_SYMBOL屬性設(shè)置了編譯一個(gè)共享庫(kù)中的源文件時(shí)才會(huì)被定義的預(yù)處理器符號(hào)名。如果這個(gè)值沒(méi)有被設(shè)置的話,那么它會(huì)被設(shè)置為默認(rèn)值target_EXPORTS(如果目標(biāo)不是一個(gè)合法的C標(biāo)示符的話可以用一些替代標(biāo)志)。這對(duì)于檢測(cè)頭文件是包含在它們的庫(kù)以內(nèi)還是以外很有幫助,從而可以合理設(shè)置dllexport/dllimport修飾符(注意,只有在編譯到的時(shí)候,這個(gè)符號(hào)才會(huì)被定義;因此猜測(cè)在代碼中,判斷預(yù)處理符號(hào)是否被定義可以知道依賴庫(kù)是導(dǎo)入的還是導(dǎo)出的——譯注)。COMPILE_FLAGS屬性可以設(shè)置附加的編譯器標(biāo)志,它們會(huì)在構(gòu)建目標(biāo)內(nèi)的源文件時(shí)被用到。它也可以用來(lái)傳遞附加的預(yù)處理器定義。

  LINKER_LANGUAGE屬性用來(lái)改變鏈接可執(zhí)行文件或共享庫(kù)的工具。默認(rèn)的值是設(shè)置與庫(kù)中的文件相匹配的語(yǔ)言。CXX和C是這個(gè)屬性的公共值。

  對(duì)于共享庫(kù),VERSION和SOVERSION屬性分別可以用來(lái)指定構(gòu)建的版本號(hào)以及API版本號(hào)。當(dāng)構(gòu)建或者安裝時(shí),如果平臺(tái)支持符號(hào)鏈接并且鏈接器支持so名字,那么恰當(dāng)?shù)姆?hào)鏈接會(huì)被創(chuàng)建。如果只指定兩者中的一個(gè),缺失的另一個(gè)假定為具有相同的版本號(hào)。對(duì)于可執(zhí)行文件,VERSION可以被用來(lái)指定構(gòu)建版本號(hào)。當(dāng)構(gòu)建或者安裝時(shí),如果該平臺(tái)支持符號(hào)鏈接,那么合適的符號(hào)鏈接會(huì)被創(chuàng)建。對(duì)于在Windows系統(tǒng)而言,共享庫(kù)和可執(zhí)行文件的VERSION屬性被解析成為一個(gè)"major.minor"的版本號(hào)。這些版本號(hào)被用做該二進(jìn)制文件的鏡像版本。

  還有一些屬性用來(lái)指定RPATH規(guī)則。INSTALL_RPATH是一個(gè)分號(hào)分隔的list,它指定了在安裝目標(biāo)時(shí)使用的rpath(針對(duì)支持rpath的平臺(tái)而言)(-rpath在gcc中用于在編譯時(shí)指定加載動(dòng)態(tài)庫(kù)的路徑;優(yōu)先級(jí)較系統(tǒng)庫(kù)路徑要高。詳情參見(jiàn)http://www.cmake.org/Wiki/CMake_RPATH_handling#What_is_RPATH_.3F——譯注)。INSTALL_RPATH_USE_LINK_PATH是一個(gè)布爾值屬性,如果它被設(shè)置為真,那么在鏈接器的搜索路徑中以及工程之外的目錄會(huì)被附加到INSTALL_RPATH之后。SKIP_BUILD_RPATH是一個(gè)布爾值屬性,它指定了是否跳過(guò)一個(gè)rpath的自動(dòng)生成過(guò)程,從而可以從構(gòu)建樹(shù)開(kāi)始運(yùn)行。BUILD_WITH_INSTALL_RPATH是一個(gè)布爾值屬性,它指定了是否將在構(gòu)建樹(shù)上的目標(biāo)與INSTALL_RPATH鏈接。該屬性要優(yōu)先于SKIP_BUILD_RPATH,因此避免了安裝之前的重新鏈接。INSTALL_NAME_DIR是一個(gè)字符串屬性,它用于在Mac OSX系統(tǒng)上,指定了被安裝的目標(biāo)中使用的共享庫(kù)的"install_name"域的目錄部分。如果目標(biāo)已經(jīng)被創(chuàng)建,變量CMAKE_INSTALL_RPATH, CMAKE_INSTALL_RPATH_USE_LINK_PATH, CMAKE_SKIP_BUILD_RPATH, CMAKE_BUILD_WITH_INSTALL_RPATH和CMAKE_INSTALL_NAME_DIR的值會(huì)被用來(lái)初始化這個(gè)屬性。

  PROJECT_LABEL屬性可以用來(lái)在IDE環(huán)境,比如visual studio,中改變目標(biāo)的名字。?VS_KEYWORD可以用來(lái)改變visual studio的關(guān)鍵字,例如如果該選項(xiàng)被設(shè)置為Qt4VSv1.0的話,QT集成將會(huì)運(yùn)行得更好。

  VS_SCC_PROJECTNAME, VS_SCC_LOCALPATH, VS_SCC_PROVIDER可以被設(shè)置,從而增加在一個(gè)VS工程文件中對(duì)源碼控制綁定的支持。

  PRE_INSTALL_SCRIPT和POST_INSTALL_SCRIPT屬性是在安裝一個(gè)目標(biāo)之前及之后指定運(yùn)行CMake腳本的舊格式。只有當(dāng)使用舊式的INSTALL_TARGETS來(lái)安裝目標(biāo)時(shí),才能使用這兩個(gè)屬性。使用INSTALL命令代替這種用法。

  EXCLUDE_FROM_DEFAULT_BUILD屬性被visual studio生成器使用。如果屬性值設(shè)置為1,那么當(dāng)你選擇"構(gòu)建解決方案"時(shí),目標(biāo)將不會(huì)成為默認(rèn)構(gòu)建的一部分。

CMD#71: set_tests_properties? ?設(shè)置若干個(gè)測(cè)試的屬性值。

set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)

  為若干個(gè)測(cè)試設(shè)置一組屬性。若屬性未被發(fā)現(xiàn),CMake將會(huì)報(bào)告一個(gè)錯(cuò)誤。這組屬性包括:WILL_FAIL, 如果設(shè)置它為true,那將會(huì)把這個(gè)測(cè)試的“通過(guò)測(cè)試/測(cè)試失敗”標(biāo)志反轉(zhuǎn)。PASS_REGULAR_EXPRESSION,如果它被設(shè)置,這個(gè)測(cè)試的輸出將會(huì)被檢測(cè)是否違背指定的正則表達(dá)式,并且至少要有一個(gè)正則表達(dá)式要匹配;否則測(cè)試將會(huì)失敗。

例子: PASS_REGULAR_EXPRESSION "TestPassed;All ok"

  FAIL_REGULAR_EXPRESSION: 如果該屬性被設(shè)置,那么只要輸出匹配給定的正則表達(dá)式中的一個(gè),那么測(cè)試失敗。

例子: PASS_REGULAR_EXPRESSION "[^a-z]Error;ERROR;Failed"

  PASS_REGULAR_EXPRESSION和FAIL_REGULAR_EXPRESSION屬性都期望一個(gè)正則表達(dá)式列表(list)作為其參數(shù)。

  TIMEOUT: 設(shè)置該屬性將會(huì)限制測(cè)試的運(yùn)行時(shí)長(zhǎng)不超過(guò)指定的秒數(shù)。

CMD#72: site_name??將給定的變量設(shè)定為計(jì)算機(jī)名。

site_name(variable)

CMD#73:?source_group??為Makefile中的源文件定義一個(gè)分組。

source_group(name [REGULAR_EXPRESSION regex] [FILES src1 src2 ...])

  為工程中的源文件中定義一個(gè)分組。這主要用來(lái)在Visual Studio中建立文件組按鈕(file tabs)。所有列出來(lái)的文件或者匹配正則表達(dá)式的文件都會(huì)被放到這個(gè)文件組中。如果一個(gè)文件匹配多個(gè)組,那么最后明確地列出這個(gè)文件的組將會(huì)包含這個(gè)文件,如果有這樣的組的話。如果沒(méi)有任何組明確地列出這個(gè)文件,那么最后那個(gè)其正則表達(dá)式與該文件名匹配的組,將會(huì)成為最終候選者。

  組名中可以包含反斜杠,以指定子文件組:source_group(outer\\inner ...)

  為了保持后向兼容性,這個(gè)命令也支持這種格式:source_group(name regex)

CMD#74:?string??字符串操作函數(shù)。

string(REGEX MATCH <regular_expression> <output variable> <input> [<input>...]) string(REGEX MATCHALL <regular_expression> <output variable> <input> [<input>...]) string(REGEX REPLACE <regular_expression> <replace_expression> <output variable> <input> [<input>...]) string(REPLACE <match_string> <replace_string> <output variable> <input> [<input>...]) string(COMPARE EQUAL <string1> <string2> <output variable>) string(COMPARE NOTEQUAL <string1> <string2> <output variable>) string(COMPARE LESS <string1> <string2> <output variable>) string(COMPARE GREATER <string1> <string2> <output variable>) string(ASCII <number> [<number> ...] <output variable>) string(CONFIGURE <string1> <output variable> [@ONLY] [ESCAPE_QUOTES]) string(TOUPPER <string1> <output variable>) string(TOLOWER <string1> <output variable>) string(LENGTH <string> <output variable>) string(SUBSTRING <string> <begin> <length> <output variable>) string(STRIP <string> <output variable>) string(RANDOM [LENGTH <length>] [ALPHABET <alphabet>] [RANDOM_SEED <seed>] <output variable>)

  REGEX MATCH : 匹配正則表達(dá)式一次,然后將匹配的值存儲(chǔ)到輸出變量中。

  REGEX MATCHALL : 盡可能多次地匹配正則表達(dá)式,然后將匹配的值以list的形勢(shì)存儲(chǔ)到輸出變量中。

  REGEX REPLACE : 盡可能多次地匹配正則表達(dá)式,并且將匹配的值用replacement expression 替換掉,然后存儲(chǔ)到輸出變量中。這個(gè)replace expression 可以引用包含匹配字符串的子表達(dá)式,這些匹配的字符串用圓括號(hào)隔開(kāi)的\1,\2,...,\9等加以引用。注意:在CMake代碼里,如果要使用一個(gè)反斜杠,必須要用兩個(gè)反斜杠(\\1)轉(zhuǎn)義,才能通過(guò)參數(shù)解析。

  REPLACE : 將輸入字符串內(nèi)所有出現(xiàn)match_string的地方都用replace_string代替,然后將結(jié)果存儲(chǔ)到輸出變量中。

  COMPARE EQUAL/NOTEQUAL/LESS/GREATER : 將會(huì)比較兩個(gè)字符串,然后將比較的結(jié)果(true/false)存儲(chǔ)到輸出變量中。

  ASCII : 將會(huì)把所有數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符。

  CONFIGURE : 將一個(gè)字符串進(jìn)行變換,這種變換與將一個(gè)FILE變換為CONFIGURE_FILE相似。

  TOUPPER/TOLOWER : 將字符串轉(zhuǎn)換為大寫(xiě)/小寫(xiě)字符。

  LENGTH : 返回給定字符串的長(zhǎng)度。

  SUBSTRING : 返回給定字符串的子串。

  STRIP : 返回一個(gè)給定字符串的子串,它會(huì)去掉原先字符串開(kāi)始和結(jié)尾的空格。

  RANDOM : 將會(huì)返回一個(gè)給定長(zhǎng)度的隨機(jī)字符串,它由給定的字母表中的字母組成。默認(rèn)的長(zhǎng)度是5個(gè)字符,默認(rèn)的字母表是全部的大小寫(xiě)字母以及數(shù)字。如果指定了一個(gè)整數(shù)RANDOM_SEED,它的值將會(huì)被用做隨機(jī)數(shù)發(fā)生器的種子。

  在正則表達(dá)式中,下述字符有特殊含義:

^ 在行首匹配。 $ 在行尾匹配。 . 匹配任意單個(gè)字符。 [ ] 匹配在中括號(hào)中的任意字符。 [^ ] 匹配不在中括號(hào)中的任意字符。 - 匹配任意在短橫線兩端字符閉區(qū)間中間的任意一個(gè)字符。 * 匹配先前模式零次或多次。 + 匹配先前模式一次或多次。 ? 匹配先前模式零次或一次。 | 匹配|兩側(cè)的任意一種模式。 () 保存一個(gè)匹配的子表達(dá)式,這個(gè)子表達(dá)式后續(xù)可以在REGEX REPLACE操作中以\n的方式引用。 它也會(huì)被所有正則表達(dá)式相關(guān)的命令所保存;包括,比如,如果用到if( MATCHES )命令的話,這些匹配的值被保存在變量CMAKE_MATCH_(0..9)中。

CMD#75:?target_link_libraries??將給定的庫(kù)鏈接到一個(gè)目標(biāo)上。

target_link_libraries(<target> [item1 [item2 [...]]] [[debug|optimized|general] <item>] ...)

  為給定的目標(biāo)設(shè)置連接時(shí)使用的庫(kù)或者標(biāo)志(flags)。如果一個(gè)庫(kù)名字與工程中的另外一個(gè)目標(biāo)相匹配,一個(gè)依賴關(guān)系會(huì)自動(dòng)添加到構(gòu)建系統(tǒng)中來(lái),這樣就可以在鏈接目標(biāo)之前,保證正在被鏈接的庫(kù)是最新的。以“-”開(kāi)始,但不是“-l”或“-framework”的那些項(xiàng),將會(huì)被當(dāng)作鏈接器標(biāo)志來(lái)處理。

  關(guān)鍵字“debug”,“optimized”或者“general” 表示緊隨關(guān)鍵字之后的庫(kù)僅僅會(huì)被用到相應(yīng)的構(gòu)建配置上。“debug”關(guān)鍵字對(duì)應(yīng)于調(diào)試配置(或者,如果全局屬性DEBUG_CONFIGURATIONS被設(shè)置的話,就是DEBUG_CONFIGURATIONS中的名字所指定的配置)。“optimized”關(guān)鍵字對(duì)應(yīng)于所有其他的配置類型。“general”關(guān)鍵字對(duì)應(yīng)于所有的配置,并且純粹是可選的(它是默認(rèn)配置,可以省略)。通過(guò)創(chuàng)建并鏈接到導(dǎo)入庫(kù)目標(biāo),可以對(duì)每種配置規(guī)則進(jìn)行更細(xì)致的粒度控制。更多內(nèi)容參見(jiàn)add_library命令的IMPORTED模式。

  默認(rèn)時(shí),庫(kù)之間的依賴性是可傳遞的。當(dāng)這個(gè)目標(biāo)被鏈接到其他目標(biāo)上時(shí),那么鏈接到這個(gè)目標(biāo)上的庫(kù)也會(huì)出現(xiàn)在其他目標(biāo)的鏈接依賴上。參見(jiàn)LINK_INTERFACE_LIBRARIES屬性的相關(guān)文檔,其中有關(guān)于如何覆蓋一個(gè)目標(biāo)的鏈接依賴性傳遞設(shè)置的介紹。

target_link_libraries(<target> LINK_INTERFACE_LIBRARIES [[debug|optimized|general] <lib>] ...)

  對(duì)于LINK_INTERFACE_LIBRARIES模式,它將會(huì)把庫(kù)附加在LINK_INTERFACE_LIBRARIES以及LINK_INTERFACE_LIBRARIES在不同配置下的等價(jià)目標(biāo)屬性,而不是用這些庫(kù)去鏈接。指定為“debug”的庫(kù)將會(huì)被附加到LINK_INTERFACE_LIBRARIES_DEBUG屬性(或者是在DEBUG_CONFIGURATIONS全局屬性中列出的配置,如果DEBUG_CONFIGURATIONS被設(shè)置的話)。指定為“optimized”庫(kù)將會(huì)被附加到LINK_INTERFACE_LIBRARIES屬性上。指定為“general”的庫(kù)(或者沒(méi)有任何關(guān)鍵字的庫(kù)),將會(huì)被當(dāng)做即被指定為“debug”又被指定為“optimized”對(duì)待。

  庫(kù)之間的依賴圖通常是非循環(huán)圖(DAG),但是如果出現(xiàn)互相依賴的靜態(tài)庫(kù),CMake會(huì)允許依賴圖中包含循環(huán)依賴(強(qiáng)連通分支)。當(dāng)其它目標(biāo)鏈接到這些庫(kù)中的一個(gè)時(shí),CMake會(huì)重復(fù)整個(gè)連通分支。例如,代碼:

1 2 3 4 5 6 add_library(A STATIC a.c) add_library(B STATIC b.c) target_link_libraries(A B) target_link_libraries(B A) add_executable(main main.c) target_link_libraries(main A)

將“main”鏈接到了“A B A B”。(雖然通常一次重復(fù)就足夠了,但是病態(tài)對(duì)象文件以及符號(hào)排布可能需要多次重復(fù)。你可以通過(guò)在上一次target_link_libraries調(diào)用中手動(dòng)重復(fù)該分支來(lái)處理這種情況。不過(guò),如果兩個(gè)歸檔文件確實(shí)是如此緊密的相互關(guān)聯(lián),它們可能會(huì)被合并為一個(gè)單一的歸檔文件。)?

CMD#76:?try_compile?嘗試編譯一些代碼。

try_compile(RESULT_VAR bindir srcdir projectName <targetname> [CMAKE_FLAGS <Flags>] [OUTPUT_VARIABLE var])

  嘗試編譯一個(gè)程序。在這種格式時(shí),srcdir路徑下應(yīng)該包含一個(gè)完整的CMake工程,包括CMakeLists.txt文件以及所有的源文件。在該命令運(yùn)行完之后,路徑bindir和srcdir不會(huì)被刪除。如果指定了<target name>,那么CMake將只構(gòu)建那個(gè)目標(biāo);否則,目標(biāo)all或ALL_BUILD將會(huì)被構(gòu)建。

try_compile(RESULT_VAR bindir srcfile[CMAKE_FLAGS <Flags>][COMPILE_DEFINITIONS <flags> ...][OUTPUT_VARIABLE var][COPY_FILE <filename> )

  嘗試編譯一個(gè)srcfile。在這種情況下,用戶僅僅需要提供源文件。CMake會(huì)創(chuàng)建合適的CMakeLists.txt文件來(lái)構(gòu)建源文件。如果使用了COPY_FILE選項(xiàng),編譯出的文件將會(huì)被拷貝到給定的文件那里。

  在這個(gè)版本里,所有在bindir/CMakeFiles/CMakeTmp文件夾下的文件,將會(huì)被自動(dòng)清除;通過(guò)向CMake傳遞調(diào)試選項(xiàng)--debug-trycompile可以避免這個(gè)清除步驟。另外一些可以包含的額外標(biāo)志有:INCLUDE_DIRECTORIES, LINK_DIRECTORIES, 和LINK_LIBRARIES。COMPILE_DEFINITIONS是通過(guò)-Ddefinations選項(xiàng)設(shè)置的預(yù)定義符號(hào),這會(huì)傳遞到編譯器命令行。try_compile命令在構(gòu)建過(guò)程中伴隨創(chuàng)建出的CMakeLists.txt看起來(lái)像這樣:

add_definitions( <expanded COMPILE_DEFINITIONS from calling cmake>) include_directories(${INCLUDE_DIRECTORIES}) link_directories(${LINK_DIRECTORIES}) add_executable(cmTryCompileExec sources) target_link_libraries(cmTryCompileExec ${LINK_LIBRARIES})

  在該命令的這兩種版本里,如果指定了OUTPUT_VARIABLE,那么構(gòu)建過(guò)程的輸出會(huì)存儲(chǔ)到給定的變量里。編譯成功或失敗的結(jié)果,會(huì)通過(guò)RESULT_VAR返回。CMAKE_FLAGS可以用來(lái)向正在構(gòu)建的CMake傳遞-DVAR:TYPE = VALUE 符號(hào)。

CMD#77:?try_run??嘗試編譯并運(yùn)行某些代碼。

try_run(RUN_RESULT_VAR COMPILE_RESULT_VARbindir srcfile [CMAKE_FLAGS <Flags>][COMPILE_DEFINITIONS <flags>][COMPILE_OUTPUT_VARIABLE comp][RUN_OUTPUT_VARIABLE run][OUTPUT_VARIABLE var][ARGS <arg1> <arg2>...])

  嘗試編譯一個(gè)源文件srcfile。通過(guò)變量COMPILE_RESULT_VAR返回TRUE或者FALSE來(lái)反應(yīng)編譯是否失敗。如果構(gòu)建出了可執(zhí)行文件,但是不能運(yùn)行,那么RUN_RESULT_VAR會(huì)被設(shè)置為FAILED_TO_RUN。COMPILE_OUTPUT_VARIABLE變量指定了一個(gè)變量,這個(gè)變量存儲(chǔ)了構(gòu)建步驟輸出的信息。RUN_OUTPUT_VARIABLE指定了一個(gè)變量,這個(gè)變量存儲(chǔ)了運(yùn)行可執(zhí)行文件時(shí)的輸出。出于兼容性的考慮,OUTPUT_VARIABLE還會(huì)被支持,它包含了包含編譯和運(yùn)行階段的輸出信息。

交叉編譯相關(guān)問(wèn)題

  當(dāng)運(yùn)行交叉編譯時(shí),第一步中編譯出的可執(zhí)行文件通常不能在編譯宿主機(jī)上直接運(yùn)行。try_run()函數(shù)會(huì)檢查CMAKE_CROSSCOMPILING變量來(lái)檢測(cè)CMake是否是交叉編譯模式。如果是的話,CMake還是會(huì)嘗試編譯可執(zhí)行文件,但是它不會(huì)嘗試運(yùn)行可執(zhí)行文件。相反,他會(huì)創(chuàng)建一些cache變量,這些變量必須由用戶填充,或者在某個(gè)CMake腳本中預(yù)先設(shè)置為那些在真實(shí)目標(biāo)機(jī)平臺(tái)上執(zhí)行的結(jié)果。這些變量有:RUN_RESULT_VAR (解釋參見(jiàn)上文),以及如果使用了RUN_OUTPUT_VARIABLE (或者OUTPUT_VARIABLE) ,還有一個(gè)附加的cache變量RUN_RESULT_VAR__COMPILE_RESULT_VAR__TRYRUN_OUTPUT。該變量是為了保存執(zhí)行過(guò)程中stdout和stderr的輸出。

  為了讓交叉編譯更加容易些,必要時(shí)再使用try_run命令。如果你使用了try_run命令,那么只有必要時(shí)才使用RUN_OUTPUT_VARIABLE(或者OUTPUT_VARIABLE)變量。在交叉編譯時(shí),使用這些變量需要cache變量必須被手動(dòng)設(shè)置為可執(zhí)行文件的輸出。你也可以用if(CMAKE_CROSSCOMPILING)將try_run的調(diào)用“保護(hù)”起來(lái),同時(shí)還要為這種情形給定一個(gè)易于預(yù)先設(shè)置的備選方案。

CMD#78?unset??撤銷對(duì)一個(gè)變量,cache變量或者環(huán)境變量的設(shè)置。

unset(<variable> [CACHE])

  刪除一個(gè)指定的變量,讓它變成未定義的。如果指定了CACHE選項(xiàng),那么這個(gè)變量將會(huì)從cache中刪除而不是當(dāng)前作用域。<variable>可以是一個(gè)環(huán)境變量,比如:

unset(ENV{LD_LIBRARY_PATH})

在這個(gè)例子中,這個(gè)變量將會(huì)從當(dāng)前的環(huán)境中被刪除。

CMD#79 : variable_watch??監(jiān)視CMake變量的改變。

variable_watch(<variable name> [<command to execute>])

  如果給定的變量發(fā)生了變化,關(guān)于正在被改寫(xiě)的變臉的消息會(huì)被打印出來(lái)。如果指定了command選項(xiàng),這條命令會(huì)被執(zhí)行。這條命令會(huì)接受這樣的參數(shù):COMMAND(<variable> <access> <value> <current list file> <stack>)

CMD#80:?while? 當(dāng)條件為真時(shí),評(píng)估(執(zhí)行)一組命令。

while(condition)COMMAND1(ARGS ...)COMMAND2(ARGS ...)...endwhile(condition)

  所有在while和與之配對(duì)的endwhile之間的命令將會(huì)被記錄,但并不會(huì)執(zhí)行。只有當(dāng)endwhile被評(píng)估,并且條件為真時(shí),這個(gè)命令列表的記錄才會(huì)被調(diào)用。條件值的評(píng)估與if命令使用相同的邏輯。

總結(jié)

以上是生活随笔為你收集整理的CMake 手册详解(二十二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

一本之道乱码区 | 99久久er热在这里只有精品15 | 91九色国产 | 超碰在线97免费 | 欧美一区二区三区在线播放 | 久久 亚洲视频 | av大全在线看 | 成人国产电影在线观看 | 大荫蒂欧美视频另类xxxx | 亚洲欧洲成人 | 91视频啊啊啊 | 久在线 | 欧美日韩高清一区二区三区 | 色久天 | 精品国产乱码久久久久久浪潮 | 国产精品黄色 | 亚洲欧美国产精品va在线观看 | 亚州人成在线播放 | 婷婷综合av | 最新中文字幕在线资源 | 不卡的av在线播放 | 午夜视频在线网站 | 久久9999久久 | 草久视频在线观看 | 日韩激情视频 | 色婷婷在线观看视频 | 九九精品视频在线 | 久久久婷 | 日韩系列 | 久久人人精| 国产精品第一页在线观看 | 中文字幕影片免费在线观看 | 99精品视频在线 | 精品久久一区二区三区 | 久久精品一区二 | 色噜噜日韩精品一区二区三区视频 | 久久伦理| 国产精品96久久久久久吹潮 | 久久免费黄色网址 | 国产精品视频久久 | 久草精品在线观看 | 天天躁天天操 | 毛片www | av性在线| 992tv人人网tv亚洲精品 | 亚洲国产成人精品在线观看 | 欧美性色综合网 | 狠狠躁18三区二区一区ai明星 | 亚洲国产高清在线观看视频 | 免费看毛片网站 | 国产精品99久久久久久武松影视 | 日韩av视屏在线观看 | 四虎成人网 | 久久久久久久久久国产精品 | 人人爽人人爽人人片 | 美女福利视频在线 | www色片| 黄色av三级在线 | 一区二区三区动漫 | 玖玖在线精品 | 国产精品亚洲a | 国产人成一区二区三区影院 | 69久久夜色精品国产69 | 99热在线精品观看 | 亚洲蜜桃av | 国产综合福利在线 | 中文国产在线观看 | 福利视频第一页 | 久久精品男人的天堂 | www.com久久久 | 国产精品自产拍在线观看 | 日本三级在线观看中文字 | 97精品国产 | 欧美精品在线视频 | 欧美美女激情18p | 国产91精品在线播放 | 国产视频久久久久 | 国产99在线 | 人人干人人超 | 日韩成人精品 | 国产精品一区一区三区 | 天天爱天天操天天爽 | 99视频在线观看免费 | 日韩高清不卡一区二区三区 | 亚洲一级二级三级 | 69久久99精品久久久久婷婷 | 国产在线观看你懂得 | 成人黄色在线看 | 在线观看日本高清mv视频 | 日本性久久 | 日韩欧美在线视频一区二区三区 | 欧美一区视频 | 久久成人亚洲欧美电影 | 69中文字幕| 免费观看全黄做爰大片国产 | 性色在线视频 | 久久精品毛片 | 欧美大jb| www日韩视频| 日韩黄色在线电影 | 久久成电影 | 亚洲精品国产综合99久久夜夜嗨 | 99久热在线精品视频观看 | 午夜久久久久久久久久久 | 亚洲免费不卡 | 日本中文字幕在线免费观看 | 国产99黄| 久久99热这里只有精品国产 | 欧美伦理一区二区 | 中文字幕av播放 | 欧美一区二区三区免费看 | 欧美性极品xxxx做受 | 中文字幕在线看 | 2019中文最近的2019中文在线 | 国产视频69 | 国产精品美女久久 | 最近中文字幕免费 | 999成人 | 奇米777777 | av官网| 美女视频黄网站 | 日韩欧美精品一区二区 | 97精品欧美91久久久久久 | 激情婷婷丁香 | 中文字幕在线看人 | 婷婷综合国产 | 亚洲精品久久久蜜臀下载官网 | 国产日韩欧美在线免费观看 | 日韩精品欧美一区 | 久久精品免费播放 | 日本三级人妇 | 在线观看麻豆av | 中文超碰字幕 | 天天操天天谢 | 亚洲区色 | 成人久久 | 黄色美女免费网站 | 日韩有码在线观看视频 | 四虎www com| 青青视频一区 | 人人操日日干 | 精品国产乱码一区二区三区在线 | 久久久久久国产一区二区三区 | av在线免费观看网站 | 九九久久免费视频 | 午夜少妇av | 婷婷在线综合 | 综合色伊人 | 噜噜色官网| 在线观看一区二区精品 | 探花视频在线版播放免费观看 | 欧美成人a在线 | 天天操天天射天天舔 | 中文字幕在线免费观看视频 | 综合久久2023 | av日韩国产 | 亚洲欧洲视频 | 亚洲影音先锋 | 亚色视频在线观看 | 亚洲高清激情 | 国产又黄又爽又猛视频日本 | 91久久精品日日躁夜夜躁国产 | av成人黄色 | 久久亚洲热 | 中文字幕av一区二区三区四区 | 亚洲三级国产 | 色国产精品| 色综合天天狠天天透天天伊人 | 国产一及片 | 久久艹国产| 国产美女主播精品一区二区三区 | 日韩av在线影视 | 亚洲国产偷 | 成人蜜桃网 | 日韩欧美网址 | 亚洲成人国产精品 | 特级免费毛片 | 西西4444www大胆艺术 | 91麻豆操 | 国产亚洲视频系列 | 九草在线观看 | 日韩精品在线播放 | 一级黄色片在线免费观看 | 天天干夜夜 | 中文字幕在线看视频 | 人人澡人人干 | 亚洲资源在线观看 | 亚洲伦理一区 | 国产精品手机看片 | 草免费视频 | 黄色大片免费播放 | 天天综合网 天天综合色 | 激情丁香综合五月 | 日本中文字幕网站 | 中文字幕在线观看视频免费 | 国产亚洲欧美一区 | 碰超在线97人人 | 国产精品v欧美精品 | 久久图 | 久久99精品久久久久婷婷 | 国产麻豆精品95视频 | 欧美精品中文字幕亚洲专区 | 色综合a| 中文字幕一区二区三区四区在线视频 | 欧美一区二区在线看 | 久久免费看视频 | 在线观看亚洲a | 天天操天天操天天操天天操天天操天天操 | 五月婷婷视频 | 五月天丁香视频 | 国产成人一区二区三区免费看 | 午夜视频免费在线观看 | 在线久热 | 91av在线视频免费观看 | 狠狠干网址| 亚洲精品国产精品乱码不99热 | 国产精品久久久久久久久久妇女 | 免费高清男女打扑克视频 | av大片免费看 | 亚洲黄色成人 | 成人免费一级 | 99热在| 黄a在线 | 国产精品综合久久久久 | 丰满少妇高潮在线观看 | 91片网| 久久男人中文字幕资源站 | 日韩av网站在线播放 | 欧美日韩高清一区二区 | 国产精品青青 | 国产精品专区在线观看 | 在线免费视频你懂的 | 日韩高清一二三区 | 91黄色免费看 | 亚洲.www | 久久调教视频 | 天天操夜夜摸 | 日本激情视频中文字幕 | 中文免费观看 | 91精品国产92久久久久 | 综合国产视频 | 精品久久国产一区 | 成人丁香花 | 国产a级片免费观看 | 国产成人福利片 | 国产亚洲aⅴaaaaaa毛片 | 国产精品免费久久久久 | 国产最新网站 | 日本特黄一级片 | 亚洲专区在线 | 亚洲午夜电影网 | 成年人视频在线免费观看 | 五月婷婷综合在线观看 | 国产一区电影在线观看 | 永久免费看av | 成年人免费看片 | 91精选在线 | www.国产毛片| 在线a亚洲视频播放在线观看 | 欧美亚洲精品在线观看 | 天天操天天射天天添 | 亚洲欧美国产精品久久久久 | 天天色天天操综合网 | 日韩精品一区二区在线 | 日本午夜在线亚洲.国产 | 日韩欧美国产精品 | 国产精品资源 | 亚洲精品88欧美一区二区 | 免费a级毛片在线看 | 色在线亚洲 | 亚洲精品视频一 | 中文字幕在线免费播放 | 久久经典国产视频 | 伊人日日干 | 狠狠狠色丁香婷婷综合久久88 | 久久视频在线免费观看 | 国产精品不卡av | 啪嗒啪嗒免费观看完整版 | 亚洲精品在线一区二区三区 | 婷婷精品国产一区二区三区日韩 | 天天操夜夜摸 | 九草在线视频 | 日韩av成人免费看 | 免费涩涩网站 | 日韩一级电影在线 | 操久在线 | 久久亚洲影视 | 人人爽人人做 | 最近中文字幕久久 | 免费看一级片 | 日韩国产精品一区 | wwwwww黄| 99中文字幕在线观看 | 亚洲视频h | 久久狠狠婷婷 | 亚洲一级黄色 | 99色国产 | 丁香av| 一区二区欧美日韩 | 美女视频黄频大全免费 | 91精品一区二区三区久久久久久 | 免费三级影片 | 免费男女羞羞的视频网站中文字幕 | 91在线免费观看国产 | 97在线播放 | 国内久久看 | 黄色小说在线观看视频 | 成人免费在线网 | 久久精品成人欧美大片古装 | 免费日韩 精品中文字幕视频在线 | 在线观看视频国产 | 在线观看成人福利 | 国产成人久久av977小说 | 精品久久网站 | 午夜国产影院 | 四虎小视频| 日韩网站视频 | 麻豆免费在线视频 | 国产亚洲精品无 | 天天操天天摸天天爽 | 亚洲一区二区三区在线看 | 人人干97 | 18做爰免费视频网站 | 久久综合中文字幕 | 九九精品视频在线看 | 日韩免费精品 | 成+人+色综合 | 亚州av网站 | 夜夜婷婷 | 91视频链接 | 91香蕉国产在线观看软件 | www久久久 | 国产国语在线 | 中文字幕久久亚洲 | 97精品视频在线播放 | 国产精品久久婷婷六月丁香 | 亚洲精品小视频在线观看 | 国产精品理论在线观看 | 久久在线精品视频 | 一二区精品| 国产91精品一区二区麻豆网站 | 天天插天天操天天干 | 97看片吧| 日韩天堂网| 精品国产一区二区三区日日嗨 | 国产在线观看午夜 | 黄色在线观看免费 | 日韩久久一区 | 中文字幕精品一区二区精品 | 欧美激情精品久久久 | 丁香激情网 | 91在线国产观看 | 黄色国产高清 | 久久五月婷婷综合 | 小草av在线播放 | 激情av一区二区 | 国产精品中文久久久久久久 | 精品亚洲成人 | 国产亚洲精品电影 | 97精品国产91久久久久久久 | 麻豆视频在线免费 | 国产精品久久电影网 | 2023亚洲精品国偷拍自产在线 | 久久99精品波多结衣一区 | 欧美一区二区日韩一区二区 | 91精品色| 91自拍视频在线观看 | 午夜影视剧场 | 久久不卡国产精品一区二区 | 男女激情网址 | 四虎影视精品永久在线观看 | 国产亚洲欧美在线视频 | 久草在线高清 | wwwav视频| 免费成人短视频 | 伊人影院在线观看 | 久草在线观看 | 五月婷婷六月丁香激情 | 日韩特黄av | 国产高清在线a视频大全 | 五月天亚洲综合 | 天天操天天谢 | 操一草 | 在线播放91| 伊人欧美 | 久久久久久电影 | 国产综合在线观看视频 | 激情综合网色播五月 | 国产五月婷 | 国产一区私人高清影院 | 99久久久| 免费网站污 | 亚洲人成人在线 | 国产亚洲精品无 | 欧美成人基地 | 亚洲精品视频偷拍 | 亚洲精品啊啊啊 | 免费黄色a网站 | 在线免费观看一区二区三区 | 超碰97人人干 | 亚洲精品裸体 | 精品在线一区二区三区 | av在线电影播放 | 婷婷在线资源 | 亚洲黄色影院 | 天堂资源在线观看视频 | 久久艹影院 | 98久9在线 | 免费 | 亚洲欧美成人综合 | 97在线视频免费看 | 国产不卡在线观看视频 | 人人爽久久涩噜噜噜网站 | 人人干人人超 | 精品美女久久久久久免费 | 日本h视频在线观看 | 亚洲最新在线视频 | 久久国产精品久久国产精品 | 国产精品久久久 | av免费在线网 | 午夜久久久久久久久久影院 | 人人澡视频 | 黄色在线观看免费 | 亚洲精品在 | 中文字幕av在线电影 | 国产精品美女999 | 一区二区三区在线影院 | 人人爽网站 | 亚洲免费av在线 | 亚洲国产精品电影 | 色香com.| 久久人人精品 | 91欧美精品 | 免费看片成年人 | 日韩一级成人av | 在线观看免费av片 | 日韩av免费一区二区 | 中文字幕在线字幕中文 | 日韩91在线 | avhd高清在线谜片 | 久久久免费在线观看 | 97国产电影 | 99久久婷婷 | 国产色婷婷 | 国产精品久久久电影 | 激情综合网婷婷 | 青青河边草免费 | 91精品麻豆 | 日本精品一区二区三区在线播放视频 | 亚洲电影在线看 | 天天射夜夜爽 | 最近中文字幕在线中文高清版 | 91在线视频免费观看 | 日韩一区二区三区免费视频 | 视色网站| 在线免费中文字幕 | 99免费在线视频 | 狠狠久久综合 | 77国产精品 | 亚洲在线精品 | 国产成人精品久久久久蜜臀 | 国产午夜精品理论片在线 | 国产精品久久久久久久免费 | 天天看天天干 | 国产中文字幕av | 草久久久久久 | 欧美日韩1区 | 日本最新中文字幕 | 婷婷中文字幕综合 | 亚洲欧美日韩国产一区二区 | 99热在| 精品国产欧美一区二区 | 天天爱天天操 | 久草资源免费 | 天堂网一区二区三区 | 涩涩网站在线看 | 国产一二区在线观看 | 久久精品99精品国产香蕉 | 国产精品一区二区62 | 国产成人精品一区二区三区网站观看 | 成人黄色av免费在线观看 | 9色在线视频 | 欧美一级久久久久 | 国产正在播放 | 国产美女视频网站 | 欧美另类一二三四区 | 99色免费 | 日本狠狠干 | 99久久精品无码一区二区毛片 | 五月丁色 | 日本超碰在线 | 午夜精品福利一区二区 | 国产精品 日韩 欧美 | 久久亚洲专区 | www.成人sex | 色综合久久综合中文综合网 | 免费亚洲一区二区 | 国产午夜一区二区 | 少妇bbbb搡bbbb搡bbbb | 日韩电影久久 | 国产打女人屁股调教97 | 欧美综合在线观看 | 视频一区二区在线观看 | 欧美一区二区三区免费看 | 在线色吧| 综合精品久久久 | 欧美黄色免费 | 亚洲精品在线网站 | 丁香花中文在线免费观看 | 三级黄色片在线观看 | 午夜av免费看 | 久久激情五月激情 | 亚洲综合小说电影qvod | 欧美动漫一区二区三区 | 国产精品欧美日韩 | 亚洲91精品在线观看 | 久久图 | 国产成人一级 | 成人av电影在线观看 | 午夜精品中文字幕 | 成人av免费在线播放 | 91传媒视频在线观看 | 九九视频在线播放 | 99精品视频在线观看 | 久久高清毛片 | 天天操导航 | 欧美a级在线播放 | 国产精品一二 | 黄a网 | 久久国产精品99久久久久久进口 | 免费观看91视频 | www.天天干 | 久久精品—区二区三区 | 99精品热视频 | 欧美精品久久人人躁人人爽 | 国产99久久久国产 | 亚洲激情国产精品 | 国产精品99久久久精品 | 免费视频一二三 | 射射射综合网 | 丝袜制服综合网 | 成人黄色片免费 | 日本黄色免费看 | 一区二区精品在线观看 | av天天干 | 精品国产乱码久久久久久久 | 久久色视频 | 国产精品理论片在线观看 | 亚洲欧美日韩精品久久奇米一区 | 91av社区| 香蕉视频日本 | 亚洲欧美精品在线 | 97在线观看免费高清完整版在线观看 | 狠狠干,狠狠操 | 三上悠亚一区二区在线观看 | 久久久久久久久久久免费av | 亚洲精品久久久久中文字幕m男 | 伊人黄色网 | 免费v片| 欧美日本三级 | 久久久久久久久久福利 | 中文字幕国产精品一区二区 | 特黄特色特刺激视频免费播放 | 99久高清在线观看视频99精品热在线观看视频 | 精品国产乱码 | 午夜精品视频在线 | 99精品乱码国产在线观看 | 99在线国产| 天天色视频 | 久久精品国产成人精品 | 日本深夜福利视频 | av色综合| 米奇四色影视 | 亚洲男人天堂a | 日韩大片在线播放 | 97超碰福利久久精品 | 日韩在线网址 | 国产淫a| 日韩在线二区 | 99草视频在线观看 | 国产日韩欧美在线免费观看 | 久久99国产精品视频 | 日韩中文字幕在线 | 国产精品九九九九九九 | 蜜臀av夜夜澡人人爽人人桃色 | 91av资源网| 日韩网站在线观看 | 国产成人av网 | 亚洲日韩精品欧美一区二区 | 一级a性色生活片久久毛片波多野 | 国产精品一区免费在线观看 | 日韩欧美综合 | 国产99精品 | 久久精品视频在线观看 | 91福利试看 | 亚洲午夜av久久乱码 | www黄在线| 欧美精品视 | 香蕉视频日本 | 精品福利片| 午夜精品电影 | 国内精品中文字幕 | 国产成人一区二区三区在线观看 | 在线观看日本韩国电影 | 中文字幕日本在线 | 国产一级h | 91中文在线 | 色综合久久五月天 | 午夜久草 | 91精品夜夜| 伊人成人激情 | 久久精品精品 | 亚洲最大av网站 | 天天爱天天操 | 成人啊 v | 99久久久久久久久久 | 日韩午夜小视频 | 国产 在线 高清 精品 | 久久不卡日韩美女 | 欧美成人亚洲 | 国产日韩一区在线 | 在线观看免费国产小视频 | 91福利视频免费观看 | 日韩精品中字 | 日本中文字幕影院 | 久久久精品国产一区二区电影四季 | 国产精品一码二码三码在线 | 超碰在线97国产 | 国产美女精品在线 | 日韩国产欧美在线视频 | 国产精品美女久久久久久网站 | 久久96国产精品久久99漫画 | 欧美性受极品xxxx喷水 | 亚洲免费视频观看 | 国产一级在线播放 | 国产精品女主播一区二区三区 | 久久亚洲精品国产亚洲老地址 | av资源免费观看 | 人人澡人人爱 | 婷婷在线色 | 黄色片网站av | 日韩欧美高清视频在线观看 | 超碰免费观看 | 六月丁香婷婷网 | 九九天堂 | 日韩欧美视频免费看 | 91免费在线视频 | 91精品综合| 五月婷婷综合久久 | 国产xx在线 | 免费黄色av.| 在线免费观看视频a | 日韩av不卡在线 | 欧美日韩一区二区在线观看 | 欧美国产日韩激情 | 在线色亚洲 | 99视频在线观看免费 | 国产原创av片 | 97人人澡人人爽人人模亚洲 | 亚州精品在线视频 | 日韩欧美精品一区二区三区经典 | 在线午夜 | 天天操天天射天天爽 | av免费在线观 | 中文字幕在线观看91 | 日韩av中文字幕在线 | 久久亚洲私人国产精品 | 98精品国产自产在线观看 | 免费 在线 中文 日本 | 成人一区二区三区中文字幕 | 日韩电影在线看 | 九九热免费观看 | 色婷婷www | 91精品久久久久久综合五月天 | 午夜精品久久久99热福利 | 在线观看黄色免费视频 | 69xx视频| 国产女人40精品一区毛片视频 | 久精品视频在线观看 | 欧洲视频一区 | av色图天堂网 | 韩国av一区二区 | 国产精品99久久免费观看 | 欧美性极品xxxx做受 | 91色国产在线 | 91九色蝌蚪在线 | 视频一区视频二区在线观看 | 免费a v在线 | a一片一级 | 国产精品一区二区视频 | 日韩在线视频看看 | 日本久久综合视频 | 一级性生活片 | 成人精品福利 | 狠狠的干 | 国产女做a爱免费视频 | 欧美精品一二三 | 中文字幕在线字幕中文 | 手机av资源 | 国产一级二级av | 亚洲精品一区二区三区在线观看 | 日韩成人欧美 | 久久成人国产精品免费软件 | 麻豆视频免费入口 | 亚洲精品白浆高清久久久久久 | 麻豆观看| 国产免费观看视频 | 久久九九影院 | 亚洲最大成人网4388xx | 婷婷亚洲最大 | 免费黄色一区 | 国产男女免费完整视频 | 国产色视频一区二区三区qq号 | 欧美性生活小视频 | 毛片播放网站 | www狠狠操 | 婷婷色av | 免费h漫在线观看 | 亚洲干视频在线观看 | 婷婷5月激情5月 | 亚洲天堂网视频在线观看 | 国产成人免费网站 | 一区二区三区精品在线 | 欧美日韩免费在线视频 | 欧美有色| 五月婷婷色丁香 | 久久99久国产精品黄毛片入口 | 成年人免费看片网站 | 日本午夜在线亚洲.国产 | 国产99久久久精品 | 人人干天天干 | 丁香婷婷射 | 久久久男人的天堂 | 欧美人交a欧美精品 | 在线视频欧美精品 | 黄色av电影在线观看 | 一区二区三区日韩在线 | 国产在线精品一区二区三区 | 中文字幕在线精品 | 亚洲国产中文字幕 | 国产成人三级 | 欧美另类69 | 在线免费看片 | av免费高清观看 | 欧美国产日韩在线观看 | 美女视频网 | 国产精品久久影院 | 久久天堂影院 | 国产精品毛片一区视频 | 欧美一区二区三区不卡 | 午夜精品影院 | av短片在线| 亚洲天堂网在线视频观看 | 伊人手机在线 | 日韩高清免费在线 | 免费看一级 | 免费毛片aaaaaa | 91cn国产在线 | 日韩久久久久久久 | 久久情网| 亚洲精品视频一 | 中文字幕一区二区三区视频 | 日本激情视频中文字幕 | aaa免费毛片 | 国产1区2区3区精品美女 | 欧美极度另类性三渗透 | 国产欧美在线一区二区三区 | 97在线免费视频观看 | 亚洲国产小视频在线观看 | 午夜久草 | 美女久久网站 | 中文字幕频道 | 国产精品视频专区 | 五月天亚洲精品 | 在线免费观看欧美日韩 | 九九免费观看全部免费视频 | 日韩av一区二区三区在线观看 | 三级视频日韩 | 黄色成人在线 | 国产精品尤物 | 天天操月月操 | 欧美片一区二区三区 | 中文字幕在线看人 | 亚洲专区欧美 | 深夜免费福利在线 | 91精品国产综合久久福利 | 中文字幕一区2区3区 | 日本色小说视频 | 在线免费观看不卡av | 丁香视频在线观看 | 久久久精品久久日韩一区综合 | 永久免费在线 | 狠狠狠狠狠狠狠狠 | 久久综合成人网 | 亚洲一级在线观看 | 日韩在线视频观看 | 久久久精品免费观看 | 国产99久久九九精品免费 | 久久国产精品免费视频 | 精品国产乱码久久久久久1区二区 | 日本精品一区二区在线观看 | 久久国产片| 涩涩伊人 | 在线观看日韩一区 | 丁香五月网久久综合 | 91理论片午午伦夜理片久久 | 91视频麻豆视频 | av电影一区二区三区 | 色wwww| 久久超级碰 | 国产精品免费在线播放 | 九九精品久久久 | 在线观看黄网 | 国产原创av在线 | 91网站观看 | 69久久久| 国产中文字幕在线看 | 国产精品久久久久三级 | 日日躁夜夜躁xxxxaaaa | 欧美日韩国产一区二区三区在线观看 | 亚洲免费av一区二区 | 国内视频一区二区 | 色多多在线观看 | 五月婷婷六月丁香激情 | 国产精品久久久久9999吃药 | 色婷婷国产在线 | 玖玖视频免费在线 | 国产精品综合在线观看 | 国产精品手机在线播放 | 国产91成人在在线播放 | 久久午夜免费观看 | 午夜精品久久久久久久爽 | 在线小视频你懂的 | 亚洲人成影院在线 | 久久精品资源 | 久久久久久久久久久久久久免费看 | 精品国产一区二区三区久久久久久 | 欧美日韩中文在线 | 激情综合色综合久久综合 | 国产精品女同一区二区三区久久夜 | 日韩欧美高清不卡 | 五月天国产精品 | 国产特级毛片aaaaaaa高清 | 亚洲日b视频 | 九九在线高清精品视频 | 欧美一级片免费观看 | 国产精品九九九 | 碰碰影院 | 久黄色 | 国产亚洲精品久久久久动 | 中文字幕精品在线 | 在线黄色国产电影 | 97香蕉久久超级碰碰高清版 | 欧美精品中文字幕亚洲专区 | 香蕉视频日本 | 中文字幕在线网址 | 日日摸日日| 五月天色综合 | 在线观看黄色小视频 | 久青草视频| 中文在线www| 99久久超碰中文字幕伊人 | 亚洲第五色综合网 | 国产精品av久久久久久无 | 亚洲va综合va国产va中文 | 在线看av的网址 | 天天综合成人网 | 西西444www高清大胆 | 日韩va欧美va亚洲va久久 | 国产一区二区播放 | 精品 一区 在线 | 日本黄色片一区二区 | 国产精品免费久久久久影院仙踪林 | 人人爽人人爽人人爽 | 国产精品精品国产 | 国产在线探花 | 在线观看中文字幕一区二区 | 亚洲 综合 激情 | 欧美福利视频 | 在线成人中文字幕 | 激情图片qvod| 久久精品这里热有精品 | 亚洲国产精品成人女人久久 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 久久国产精品小视频 | 东方av免费在线观看 | 天天色综合三 | 高清av免费看 | 国产高清在线免费观看 | 2019中文字幕第一页 | av在线短片 | 免费又黄又爽 | 久操视频在线 | 日本中文字幕在线看 | 精品国产一区二区三区久久久 | 五月婷社区 | 亚洲午夜久久久久久久久电影网 | 午夜av一区二区三区 | 亚洲成av片人久久久 | 日韩av免费大片 | av天天色 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产亲近乱来精品 | 在线播放 日韩专区 | 久久精品首页 | 日韩欧美视频一区二区三区 | 91试看| 92精品国产成人观看免费 | www.夜夜爱| 欧美亚洲一级片 | 国产麻豆精品95视频 | av在线播放不卡 | 国产在线一区二区三区播放 | 美女黄濒 | 欧美激情视频一区二区三区 | www日韩视频 | 中文区中文字幕免费看 | 国产中文字幕在线观看 | 中文字幕色婷婷在线视频 | 亚洲国产播放 | 亚洲综合视频在线观看 | 国产玖玖视频 | 在线播放av网址 | 亚洲精品一区二区在线观看 | 国产麻豆视频免费观看 | 日本三级大片 | 久久精彩视频 | 久久久国产精品人人片99精片欧美一 | 久热精品国产 | 日韩精品一区二区三区丰满 | 国产中文字幕91 | 91精品国产一区二区三区 | 97涩涩视频| 在线精品一区二区 | 成人免费 在线播放 | 国产 精品 资源 | 在线视频 一区二区 | 日韩久久精品一区 | 国产日本在线 | 天天综合操 | 色99视频 | 成人aⅴ视频 | 2020天天干天天操 | 国产在线久草 | 国产一区免费观看 | 欧美人体xx| 精品国产乱码 | 99久热在线精品视频观看 | 久久激五月天综合精品 | 国产黄色免费在线观看 | 精品九九九九 | 国产在线一区二区三区播放 | 国产精品99久久99久久久二8 | 日韩中文在线视频 | 天天操天天舔天天干 | 国产99久久九九精品免费 | 17婷婷久久www | 黄色的片子 | 免费看的黄色片 | 精品中文字幕在线观看 | 中文字幕乱码日本亚洲一区二区 | 四虎影视成人精品国库在线观看 | 狠狠干夜夜爱 | 99超碰在线观看 | 日韩一区二区三区在线看 | 国产a国产 | 国产高清不卡在线 | 国产精品 日韩 | 特级黄色一级 | 男女全黄一级一级高潮免费看 | 亚洲国产午夜精品 | 在线播放精品一区二区三区 | 中文字幕精品一区久久久久 | 麻豆精品在线视频 | 国产成人久久av977小说 | 免费视频一区二区 | 欧美成人精品三级在线观看播放 | 久久撸在线视频 | 欧美日一级片 | 日本中文在线 | 热99在线| 精品国产自 | 久久兔费看a级 | 免费成人看片 | 99久久精品国产亚洲 | 日韩成人欧美 | 国产精久久久久久久 | 日精品 | 园产精品久久久久久久7电影 | 色婷久久 | 亚洲欧美国产精品18p | 免费在线观看国产精品 | 国产小视频在线播放 | 欧美日韩中 | 亚洲黄色在线观看 | 国产激情小视频在线观看 | 国产亚洲精品成人av久久影院 | 久久久精品电影 | 亚洲精品乱码久久久久久按摩 |