cmake 手册
来源:互联网 发布:ios驾考宝典源码 编辑:程序博客网 时间:2024/06/04 18:14
当代码过多时我们通过cmake 中的CMakeLists.txt的正确编写 cmake . 生成makefile文件 然后通过make 生成我们需要的可执行文件或者库
CMakeLists.txt 说明 cmakecmakeblog 关于cmake的详细资料可下载文档 cmake文档
//main.c#include <stdio.h>int main(){ printf("hello cmake \n"); return 0;}
#CMakeLists.txtPROJECT (HELLO) # 定义工程名称CMAKE_MINIMUM_REQUIRED(VERSION 2.8) # CMake 最低版本要求,低于2.6 构建过程会被终止。SET(SRC_LIST main.c) # 使用set命令显式定义及赋值SET(CMAKE_BUILE_TYPE DEBUG) # 指定编译类型,debug 或者为 release # debug 版会生成相关调试信息,可以使用 GDB 进行 # release不会生成调试信息。当无法进行调试时查看此处是否设置为 debug.MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR}) # 打印相关消息消息 MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})ADD_EXECUTABLE(hello ${SRC_LIST}) #生成可执行文件 ADD_EXECUTABLE(hello main.c)
[d5000@D5000Client t2]$ cmake .CMake Warning (dev) in CMakeLists.txt: Syntax Warning in cmake code at /home/d5000/work/Ptest/t2/CMakeLists.txt:11:37 Argument not separated from preceding token by whitespace.This warning is for project developers. Use -Wno-dev to suppress it.-- The C compiler identification is GNU 4.4.7-- The CXX compiler identification is GNU 4.4.7-- Check for working C compiler: /usr/bin/cc-- Check for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working CXX compiler: /usr/bin/c++-- Check for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- This is BINARY dir /home/d5000/work/Ptest/t2-- This is SOURCE dir /home/d5000/work/Ptest/t2-- Configuring done-- Generating done-- Build files have been written to: /home/d5000/work/Ptest/t2[d5000@D5000Client t2]$ make Scanning dependencies of target hello[100%] Building C object CMakeFiles/hello.dir/main.c.oLinking C executable hello[100%] Built target hello[d5000@D5000Client t2]$ ./hellohello cmake
下面是自己工作中用到的CMakeLists.txt 仅供参考
project(CacheEngine) #定义工程名称cmake_minimum_required(VERSION 2.8) # CMake 最低版本要求,低于2.8 构建过程会被终止。# 使用set命令显式定义及赋值 SET(SRC_LIST main.c),如果有多个源文件,也可以定义成:SET(SRC_LIST main.c t1.c t2.c)#MESSAGE(STATUS|SEND_ERROR|FATAL_ERROR "AAAA")#STATUS 输出信息类似printf#SEND_ERROR 产生错误 生成过程终止#FATAL_ERROR 立即终止所有cmake过程set(CMAKE_C_COMPILER "/usr/bin/cc") # 指定 C 编译器set(CMAKE_CXX_COMPILER "/usr/bin/c++") # 指定C++编译器set(CMAKE_C_FLAGS "-fPIC") # 编译C文件时的选项 -fPIC动态库SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") # DEBUG版选项SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") # RELEASE版选项set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) #支持IF(A) ELSE()的写法if(CMAKE_BUILD_TYPE STREQUAL "Debug") #str equal set(CMAKE_VERBOSE_MAKEFILE ON) #显示执行构建过程中详细的信息(比如为了得到更详细的出错信息) set(CMAKE_VERBOSE_MAKEFILE ON)endif()execute_process( COMMAND pwd OUTPUT_VARIABLE CHKPATHWORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..)string(STRIP ${CHKPATH} CHKPATH) #?SET(CMAKE_INSTALL_PREFIX ${CHKPATH}) # 设置工作目录add_definitions(-D_WORKPATH="${CMAKE_INSTALL_PREFIX}") #预定义宏,-D选项 _WORKPATH = /home/d5000/work/OnlineCheckINCLUDE_DIRECTORIES(../CacheLibForNew ./) # 设置头文件的引用路径LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib /usr/local/lib) #设置引用库路径 有标准库 有自己生成库SET(CACHE_SRC cache/cachefactory.cpp cache/branchgathertopomanager.cpp cache/topomanager.cpp cache/findbranchdata.cpp cache/FindBranchTopoData.cpp cache/GlobalVariable.cpp cache/SaveCheckResult.cpp cache/DataFunc.cpp cache/CalculationResult.cpp cache/cache_to_equipment.cpp cache/cache_to_difference_check.cpp cache/db_interaction.cpp)SET(CIMHELPER_SRC CimHelper/UploadCimHelper.cpp CimHelper/standardizationzoneequipment.cpp CimHelper/physical_topology_renumbering.cpp CimHelper/CimOperator/controlareaup.cpp CimHelper/CimOperator/basevoltageup.cpp CimHelper/CimOperator/substationup.cpp CimHelper/CimOperator/busbarsectionup.cpp CimHelper/CimOperator/breakerup.cpp CimHelper/CimOperator/disconnectorup.cpp CimHelper/CimOperator/synchronousmachineup.cpp CimHelper/CimOperator/aclinesegmentup.cpp CimHelper/CimOperator/dclinesegmentup.cpp CimHelper/CimOperator/loadup.cpp CimHelper/CimOperator/powertransformerup.cpp CimHelper/CimOperator/seriescompensatorup.cpp CimHelper/getonetimeequipmentfromxml.cpp CimHelper/analyseonetimeequipment.cpp CimHelper/protectioncheckparse.cpp CimHelper/union_equi_value_table.cpp CimHelper/tnodetopology.cpp CimHelper/readupfile.cpp CimHelper/getcorrespondencedata.cpp CimHelper/createtnodelinedata.cpp CimHelper/parameterdiffdatainfo.cpp CimHelper/getlmxsdata.cpp CimHelper/get_data_from_cime_gd.cpp)SET(ANALYSE_SRC Analyse/smallest_unit_of_analysis.cpp Analyse/init_equipment_count_of_station.cpp Analyse/init_equipment_item_count.cpp Analyse/global_static_variables.cpp Analyse/init_equipment_setting_count_of_station.cpp Analyse/analysis_result_in_range.cpp Analyse/outputtofile.cpp Analyse/analysemain.cpp Analyse/get_lst_from_cache.cpp Analyse/write_to_file_or_xml.cpp Analyse/controlarea_substation_cime.cpp Analyse/analyse_rule_check_value_curve.cpp Analyse/DataClass.cpp Analyse/monthreport_config.cpp)SET(CASE_SRC Case/stationabutmentmanager.cpp Case/getequipmentinputdbfrome.cpp Case/RemoteData.cpp Case/model_E.cpp Case/CaseManage.cpp Case/mispoint_datamanager.cpp)SET(DB_SRC DB/odbcdb.cpp DB/odbcpool.cpp DB/autoconndb.cpp DB/dbentity.cpp DB/batentity.cpp DB/autostmt.cpp DB/sqlparameter.cpp DB/odsingleentity.cpp)SET(MODEL_SRC DBModel/odbcbreak.cpp DBModel/odbcbranningfactorbat.cpp DBModel/odbcbus.cpp DBModel/odbccapacitor.cpp DBModel/odbcequalline.cpp DBModel/odbcequalsource.cpp DBModel/odbcline.cpp DBModel/odbcmutualinductance.cpp DBModel/odbcpowertransformer.cpp DBModel/odbcreactance.cpp DBModel/odbcsynchronousmachine.cpp DBModel/odbctopologicalphysics.cpp DBModel/odbcsubstation.cpp DBModel/odbcstationrunway.cpp DBModel/odbcrunway.cpp DBModel/odbcbranchcollectiontopo.cpp DBModel/odbcbasevoltage.cpp DBModel/odbctnode.cpp DBModel/odbcompanysinglepointequivalence.cpp DBModel/odbcrunwaydes.cpp)SET(CONFIG_SRC Config/CommonProperty.cpp Config/system_config.cpp Config/SystemSetting.cpp)SET(DBMIRROR_SRC DBMirror/dbmirror.cpp DBMirror/dbequimentbase.cpp DBMirror/dbbus.cpp DBMirror/dbline.cpp DBMirror/dbbreaker.cpp DBMirror/dbcapacitor.cpp DBMirror/dbequalline.cpp DBMirror/dbequalsource.cpp DBMirror/dbmutualinductance.cpp DBMirror/dbpowertransformer.cpp DBMirror/dbreactance.cpp DBMirror/dbsynchronousmachine.cpp DBMirror/dbboundarybus.cpp DBMirror/dbsubstation.cpp DBMirror/dbstationrunway.cpp DBMirror/dbrunway.cpp DBMirror/dbdevidedbranch.cpp DBMirror/dbequivalentlinenew.cpp DBMirror/dbcompanysinglepointequivalence.cpp DBMirror/dbbranningfactor.cpp DBMirror/dbbranchcollection.cpp DBMirror/dbloopcalcmode.cpp DBMirror/dbbranchcurrent.cpp DBMirror/dbbreakermode.cpp DBMirror/dbbranchcurrentextremum.cpp DBMirror/dbload.cpp DBMirror/dbarea.cpp DBMirror/dbtopologicalphysics.cpp DBMirror/Topo/breakerbusquery.cpp DBMirror/Topo/branchbreakerbusquery.cpp DBMirror/Topo/branchbreakerbusnewquery.cpp DBMirror/Topo/topoquery.cpp DBMirror/Topo/boundarybusbreakerquery.cpp DBMirror/dbdcline.cpp DBMirror/calcelementfilter.cpp)SET(MODEL_SRC model/runwaydescription.cpp model/breakermode.cpp model/substation.cpp model/equivalentline.cpp model/basevoltage.cpp model/line.cpp model/powertransformer.cpp model/synchronousmachine.cpp model/tranequipmentsetting.cpp model/onlinecheckresult.cpp model/onlinecheckcalculationbook.cpp model/lineequipmentsettings.cpp model/busequipmentsettings.cpp model/equivaluesource.cpp model/protectioncheck.cpp model/protectionitemcheck.cpp model/protectionrulecheck.cpp model/protectionvariablecheck.cpp model/protectioncooperation.cpp model/remoteacline.cpp model/breaker.cpp model/runway.cpp model/topologicalphysics.cpp model/bus.cpp model/area.cpp model/remoteunit.cpp model/dzitem.cpp model/user.cpp model/onlinecheckparameter.cpp model/roccountpercent.cpp model/rocwholenetcurve.cpp model/singleresult.cpp model/equipmentsettingdz.cpp model/load.cpp model/reactance.cpp model/capacitor.cpp model/dcline.cpp model/mutualinductance.cpp model/remotesubstation.cpp model/levelpercent.cpp model/devidedbranch.cpp model/rocwholenetcurveforstation.cpp model/rocmaxwarninglevel.cpp model/onlinechecksensitivity.cpp model/curveview.cpp model/resultpercent.cpp model/stationalarmnum.cpp model/percentofpass.cpp model/stationpoint.cpp model/roccheckmark.cpp model/protectanalysestat.cpp model/checkdissatisfy.cpp model/parallelonlinechkpara.cpp model/linemount.cpp model/breakerstate.cpp model/mispoint.cpp model/devicecastback.cpp model/remotebreaker.cpp model/remotebus.cpp model/remotetransformer.cpp model/differencecheck.cpp model/boundarybus.cpp model/equivalentlinenew.cpp model/role.cpp model/differencecheckgroup.cpp model/dclinedot.cpp model/aclinedot.cpp model/grounddisconnector.cpp model/transformerwinding.cpp model/seriescompensator.cpp model/correspondence.cpp model/protectionscope.cpp model/tableparameter.cpp model/devicebase.cpp model/partpercent.cpp model/percent.cpp model/warningmessage.cpp model/checkresultmessage.cpp model/equipinfo.cpp model/equiplistinfo.cpp model/e8003warninginfo.cpp model/tnode.cpp model/branchgathertopo.cpp model/equsetting.cpp model/equipmentsettingitems.cpp model/stationabutment.cpp model/checkrecord.cpp model/rocdis3curve.cpp model/valueplan.cpp model/valueplandescription.cpp model/borderdata.cpp)SET(CIMUNIT_SRC cimunit/basevoltagecimunit.cpp cimunit/controlareacimunit.cpp cimunit/substationcimunit.cpp cimunit/busbarsectioncimunit.cpp cimunit/breakercimunit.cpp cimunit/disconnectorcimunit.cpp cimunit/synchronousmachinecimunit.cpp cimunit/dclinedotcimunit.cpp cimunit/aclinedotcimunit.cpp cimunit/dclinesegmentcimunit.cpp cimunit/aclinesegmentcimunit.cpp cimunit/loadcimunit.cpp cimunit/grounddisconnectorcimunit.cpp cimunit/transformerwindingcimunit.cpp cimunit/powertransformercimunit.cpp cimunit/seriescompensatorcimunit.cpp cimunit/onlyonecimunit.cpp cimunit/correspondencecimunit.cpp cimunit/equipmentsettingdzcimunit.cpp cimunit/cachebreakercimunit.cpp cimunit/cachepowertransformercimunit.cpp cimunit/equivalentlinecimunit.cpp cimunit/equivalentsourcecimunit.cpp cimunit/mutualinductancecimunit.cpp cimunit/runwaycimunit.cpp cimunit/topologicalphysicscimunit.cpp cimunit/differencecheckcimunit.cpp cimunit/breakermodecimunit.cpp cimunit/protectioncheckcimunit.cpp cimunit/protectionitemcheckcimunit.cpp cimunit/protectionrulecheckcimunit.cpp cimunit/protectionvariablecheckcimunit.cpp cimunit/cimaddlinecimunit.cpp cimunit/cimaddpowertransformercimunit.cpp cimunit/cimaddsynchronousmachinecimunit.cpp cimunit/equsettingcimunit.cpp cimunit/equipmentsettingitemscimunit.cpp cimunit/stationabutmentcimunit.cpp cimunit/subcontrolareacimunit.cpp cimunit/mispointcimunit.cpp cimunit/zdsubstationcimunit.cpp cimunit/calculationbookcimunit.cpp cimunit/equipinputcimunit.cpp cimunit/borderdatacimunit.cpp)SET(ADJUST_SRC Adjust/getEquipmentSettingXMLInfo.cpp Adjust/equipmentsettinginfo.cpp)SET(COMM_SRC Common/calcexception.cpp Common/zini.cpp Common/commfunc.cpp Common/debugfile.cpp Common/codeconvert.cpp Common/zini.cpp Common/Formula.cpp Common/stack.cpp Common/opera.cpp Common/dirfunc.cpp Common/valueplandata.cpp Common/complexoperator.cpp Common/EReadTool.cpp Common/CacheValue.cpp)SET(BASIC_SRC Basic/eleimpedance.cpp Basic/elebus.cpp Basic/branchcollection.cpp Basic/branchcurrentextremum.cpp Basic/busimpedance.cpp Basic/branningfactor.cpp Basic/tempequipment.cpp Basic/calcconfig.cpp Basic/branchcollectiontopo.cpp Basic/calcres.cpp Basic/EquipmentCheck.cpp Basic/branchcurrent.cpp Basic/faultplaceinformation.cpp Basic/nodevoltage.cpp Basic/NeighbourBranchTypeArray.cpp Basic/element.cpp Basic/EleImpeArray.cpp Basic/CStruct.cpp Basic/NodeImpedance.cpp Basic/neighbourbranch.cpp Basic/equivalentlinenew.cpp Basic/dz_info.cpp Basic/cele_impedance.cpp Basic/BusInfoConsiderFlow.cpp Basic/branchcollectiontopo.cpp Basic/branchcollection.cpp Basic/boundarybus.cpp Basic/equipment_setting.cpp Basic/complexangle.cpp Basic/Ele_BusArray.cpp Basic/TranEquipmentSettingItems.cpp Basic/TranEquipmentSetting.cpp Basic/LineEquipmentSettingItems.cpp Basic/LineEquipmentSetting.cpp Basic/BusEquipmentSettingItems.cpp Basic/BusEquipmentSetting.cpp Basic/online_check_result_struct.cpp Basic/rulecheckvalue_curve_io.cpp#外面用 Basic/datedistance3_line_remotetelemetry.cpp#外面用)SET(WEBSERVICE WebService/ClientMain.cpp WebService/stub/soapC.cpp WebService/stub/soapClient.cpp WebService/stub/stdsoap2.cpp)if(_DATA_ODBC) ADD_LIBRARY(CacheEngine SHARED ${DB_SRC} ${MODEL_SRC} ${CIMUNIT_SRC} ${CACHE_SRC} ${ANALYSE_SRC} ${DBMIRROR_SRC} ${CASE_SRC} ${CIMHELPER_SRC} ${ANALYSE_SRC} ${CONFIG_SRC} ${COMM_SRC} ${WEBSERVICE} )else() ADD_LIBRARY(CacheEngine SHARED ${ADJUST_SRC} ${MODEL_SRC} ${BASIC_SRC} ${CIMUNIT_SRC} ${CACHE_SRC} ${ANALYSE_SRC} ${DBMIRROR_SRC} ${CASE_SRC} ${CIMHELPER_SRC} ${ANALYS_SRC} ${CONFIG_SRC} ${COMM_SRC} ${WEBSERVICE} )endif()SET_TARGET_PROPERTIES(CacheEngine PROPERTIES VERSION 1.0 SOVERSION 1)TARGET_LINK_LIBRARIES(CacheEngine DatAccess boost_thread boost_system log4cpp boost_regex) # 生成目标所需要的库SET_TARGET_PROPERTIES(CacheEngine PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../../lib) # 指定 lib 文件目录#通过 SET 来定义变量 一般情况下通过 ${CIMMAIN_SRC} 来引用变量 但是在IF()中是直接用变量CIMMAIN_SRCSET(CIMMAIN_SRC CimHelper/cimhelpermain.cpp)ADD_EXECUTABLE(cime_helper ${CIMMAIN_SRC}) # 生成可执行文件 ADD_EXECUTABLE(cime_helper ${CIMMAIN_SRC})#定义了这个工程会生成一个文件名为 cime_helper 的可执行文件,相关的源文件是 CIMMAIN_SRC 中#定义的源文件列表, 本例中你也可以直接写成ADD_EXECUTABLE(hello main.c)。TARGET_LINK_LIBRARIES(cime_helper CacheEngine DatAccess boost_thread log4cpp ${PROJECT_NAME} boost_timer) # 设置目标要连接库文件的名称SET_TARGET_PROPERTIES(cime_helper PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin) # 指定目标文件目录SET(CHECKRESULT_SRC Analyse/checkresultmain.cpp)ADD_EXECUTABLE(result_analysing ${CHECKRESULT_SRC}) # 生成可执行文件TARGET_LINK_LIBRARIES(result_analysing CacheEngine DatAccess boost_thread log4cpp ${PROJECT_NAME} boost_timer) # 设置目标要连接库文件的名称SET_TARGET_PROPERTIES(result_analysing PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin) # 指定目标文件目录SET(REMOTEDATA_SRC Case/remotedatamain.cpp)ADD_EXECUTABLE(RemoteData ${REMOTEDATA_SRC}) # 生成可执行文件TARGET_LINK_LIBRARIES(RemoteData CacheEngine DatAccess boost_thread log4cpp boost_timer)# 设置目标要连接库文件的名称SET_TARGET_PROPERTIES(RemoteData PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin) # 指定目标文件目录SET(PARADIFF_SRC CimHelper/paradiff.cpp)ADD_EXECUTABLE(paraup ${PARADIFF_SRC}) # 生成可执行文件TARGET_LINK_LIBRARIES(paraup CacheEngine DatAccess boost_thread log4cpp boost_timer)# 设置目标要连接库文件的名称SET_TARGET_PROPERTIES(paraup PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin) # 指定目标文件目录#清理緩存SET(CLEANNODE_SRC CimHelper/cleannodemain.cpp)ADD_EXECUTABLE(cleanNode ${CLEANNODE_SRC})TARGET_LINK_LIBRARIES(cleanNode CacheEngine DatAccess boost_thread log4cpp boost_timer)SET_TARGET_PROPERTIES(cleanNode PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin)
project(CacheLib)cmake_minimum_required(VERSION 2.8)#set(CMAKE_VERBOSE_MAKEFILE ON)#set(CMAKE_CXX_COMPILER "g++") #set(CMAKE_C_COMPILER gcc)set(CMAKE_C_COMPILER "/usr/bin/cc")set(CMAKE_CXX_COMPILER "/usr/bin/c++")set(CMAKE_C_FLAGS "-fPIC")#SET(CMAKE_BUILD_TYPE "Release")#SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -pg -g -ggdb")SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")#set(CMAKE_LD_FLAGS "-pg")set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)if(CMAKE_BUILD_TYPE STREQUAL "Debug") #add_definitions(-D_DEBUG) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_VERBOSE_MAKEFILE ON)endif()execute_process( COMMAND pwdOUTPUT_VARIABLE CHKPATHWORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..)string(STRIP ${CHKPATH} CHKPATH)SET(CMAKE_INSTALL_PREFIX ${CHKPATH})add_definitions(-D_LL="${CMAKE_INSTALL_PREFIX}")INCLUDE_DIRECTORIES(./redis ./model ./serial ./rapidjson ./)LINK_DIRECTORIES(/usr/local/lib)SET(DATAACCESS_SRC redis/sds.c redis/redis.c redis/net.c redis/dict.c redis/async.c Json/json_writer.cpp Json/json_value.cpp Json/json_reader.cpp DataAccess/jsonstandardcache.cpp DataAccess/cachebase.cpp DataAccess/stringbunch.cpp)SET(BK_SRC backup/cachebackup.cpp backup/cachemapnormal.cpp backup/cache2mapnormal.cpp backup/cache3mapnormal.cpp)SET(CIM_SRC cim/cimmanager.cpp cim/cimunit.cpp cim/cimunitlist.cpp cim/normalcimunit.cpp cim/onlyonecimunit.cpp)SET(CACHE_SRC cache/cacheserver.cpp cache/cachemanager.cpp cache/cachemanagerobj.cpp cache/cachemanager3map.cpp cache/cachemanager2map.cpp cache/autoconncache.cpp cache/cachemanagervector2d.cpp cache/maptree.cpp cache/cachepulish.cpp)SET(COMM_SRC comm/norexception.cpp comm/cachequeue.cpp comm/define.cpp comm/paratwo.cpp comm/datetime.cpp comm/vector2d.h comm/reflexclass.h comm/zini.cpp)SET(SERIAL_SRC serial/jsoniarchive.cpp serial/jsonoarchive.cpp serial/jsonserial.cpp serial/jsoncontext.cpp serial/jsonobj.cpp serial/typeforjsonconvertor.cpp)SET(TESTCACHE_SRC cachemain.cpp)SET(TESTCIM_SRC cimmain.cpp)SET(TESTJSON_SRC jsonmain.cpp)SET(TESTODBC_SRC odbcmain.cpp)FIND_PATH(ODBC_INCLUDE_DIR NAMES sql.h PATHS /usr/include /usr/local/include /usr/local/unixODBC/include )FIND_LIBRARY(ODBC_LIBRARY NAMES odbc PATHS /usr/lib /usr/local/lib /usr/local/unixODBC/lib )if(ODBC_INCLUDE_DIR AND ODBC_LIBRARY) SET(ODBC_FOUND TRUE)endif(ODBC_INCLUDE_DIR AND ODBC_LIBRARY)SET(DATAACCESS_SRC ${DATAACCESS_SRC} ${COMM_SRC} ${SERIAL_SRC} ${CIM_SRC} ${BK_SRC} ${CACHE_SRC})SET(DATAACCESS_LIB boost_regex)if(ODBC_FOUND) INCLUDE_DIRECTORIES(${ODBC_INCLUDE_DIR}) #MESSAGE("db include:${ODBC_INCLUDE_DIR},db lib:${ODBC_LIBRARY_DIR}") SET(DATAACCESS_SRC ${DATAACCESS_SRC} DB/odbcdb.cpp DB/odbcpool.cpp DB/autoconndb.cpp DB/dbentity.cpp DB/batentity.cpp DB/autostmt.cpp DB/sqlparameter.cpp DB/odsingleentity.cpp ) SET(DATAACCESS_LIB ${DATAACCESS_LIB} ${ODBC_LIBRARY})endif(ODBC_FOUND)ADD_LIBRARY(DatAccess SHARED ${DATAACCESS_SRC})TARGET_LINK_LIBRARIES(DatAccess ${DATAACCESS_LIB})SET_TARGET_PROPERTIES(DatAccess PROPERTIES VERSION 2.0 SOVERSION 2)SET_TARGET_PROPERTIES(DatAccess PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../../lib)ADD_EXECUTABLE(CimTest ${TESTCIM_SRC})TARGET_LINK_LIBRARIES(CimTest DatAccess boost_thread boost_system log4cpp)SET_TARGET_PROPERTIES(CimTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin)ADD_EXECUTABLE(CacheTest ${TESTCACHE_SRC})TARGET_LINK_LIBRARIES(CacheTest DatAccess boost_thread boost_system log4cpp)SET_TARGET_PROPERTIES(CacheTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin)if(ODBC_FOUND) ADD_EXECUTABLE(OdbcTest ${TESTODBC_SRC}) TARGET_LINK_LIBRARIES(OdbcTest DatAccess boost_thread boost_system log4cpp) SET_TARGET_PROPERTIES(OdbcTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin)endif(ODBC_FOUND)ADD_EXECUTABLE(JsonTest ${TESTJSON_SRC})TARGET_LINK_LIBRARIES(JsonTest DatAccess boost_thread boost_system log4cpp)SET_TARGET_PROPERTIES(JsonTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../bin)INSTALL(TARGETS DatAccess LIBRARY DESTINATION lib)
阅读全文
1 0
- CMAKE手册
- cmake 手册
- cmake手册详解
- CMake手册详解
- cmake 手册详解
- cmake参数说明手册
- CMake 手册详解(一)
- CMake 手册详解(二)
- CMake 手册详解(三)
- CMake 手册详解(四)
- MySQL CMake参数说明手册
- 很全的cmake手册
- MySQL CMake参数说明手册
- MySQL CMake参数说明手册
- MySQL CMake参数说明手册
- MySQL CMake参数说明手册
- MySQL CMake参数说明手册
- CMake 手册详解(一)
- 业务同学入门搜索,推荐的一些套路方案
- socket 套接字理解
- 冷门js技巧
- 【计网】SSL/TLS 协议详解
- centos下man命令无法查询c函数内容
- cmake 手册
- 温度检测器
- synchronized字段总结
- linux进程调度分析(下)
- [FFMPEG-代码分析]rtsp客户端
- 本地对象
- java之剔除字符串中其它相同的字符
- 【LeetCode】461 Hamming Distance
- 编程作业题1-临时抱佛脚