cmake 附加库目录 附加包含头文件目录 链接库 镜像不安全 宏定义 一个完整的cmake小项目

复制代码
cmake_minimum_required(VERSION 3.5)

######
##              WINDOWS 32 bit library                   linux 64 bit library
######

project(libcocos)


######################
message("please define target platform")
#add_definitions(-D WINDOWS)
#add_definitions(-D LINUX)
# 1       WINDOWS 
# 0       LINUX
message("test project ,please define target platform, 1  WINDOWS ,0  LINUX")
set(PLATFOROM 1)
#set(PLATFOROM 0)
message("PROJECT_SOURCE_DIR is ${PROJECT_SOURCE_DIR}")
if(PLATFOROM)
    add_definitions(-D UNICODE)
    add_definitions(-D WINDOWS)
    add_definitions(-D CC_STATIC)
else()
    #add_definitions(-D LINUX)
endif()


include_directories(
                                    ${PROJECT_SOURCE_DIR}/libcocos
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/cocos
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/cocos/audio
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/cocos/audio/include
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/glfw3/include/win32
                                    ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/gles/include/OGLES
                                    ${PROJECT_SOURCE_DIR}/libEx/Box2D/include
                                    ${PROJECT_SOURCE_DIR}/libEx/ffmpeg/include
                                    ${PROJECT_SOURCE_DIR}/libEx/opencv/include
                                    ${PROJECT_SOURCE_DIR}/libEx/SDL/include
                                    ${PROJECT_SOURCE_DIR}/libEx/boost/include
                                    
                                    ${PROJECT_SOURCE_DIR}/src
                                    ${PROJECT_SOURCE_DIR}/src/liquidFun
                                    ${PROJECT_SOURCE_DIR}/src/liquidFun/Tests
                                    ${PROJECT_SOURCE_DIR}/src/liquidFunSprite
)

link_directories(
                                ${PROJECT_SOURCE_DIR}/libEx/Box2D/lib
                                ${PROJECT_SOURCE_DIR}/libEx/ffmpeg/lib
                                ${PROJECT_SOURCE_DIR}/libEx/opencv/lib
                                ${PROJECT_SOURCE_DIR}/libEx/SDL/lib
                                ${PROJECT_SOURCE_DIR}/libEx/boost/lib/x86
)

set(EXTERN_LIBRARY 

                liquidfun.lib

                avcodec.lib
                avdevice.lib
                avfilter.lib
                avformat.lib
                avutil.lib
                postproc.lib
                swresample.lib
                swscale.lib

                opencv_calib3d450d.lib
                opencv_core450d.lib
                opencv_dnn450d.lib
                opencv_features2d450d.lib
                opencv_flann450d.lib
                opencv_gapi450d.lib
                opencv_highgui450d.lib
                opencv_imgcodecs450d.lib
                opencv_imgproc450d.lib
                opencv_ml450d.lib
                opencv_objdetect450d.lib
                opencv_photo450d.lib
                opencv_stitching450d.lib
                opencv_video450d.lib
                opencv_videoio450d.lib

                SDL2maind.lib
                SDL2d.lib


                

                libboost_random-vc141-mt-gd-x32-1_71.lib

    )

include(src/liquidFun/CMakeLists.txt)
include(src/liquidFunSprite/CMakeLists.txt)

if(PLATFOROM)
    set(PLATFROMDEP 
            opengl32.lib
            odbc32.lib
            ws2_32.lib
            Version.lib
            Winmm.lib
            GlU32.Lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/luacocos2d.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/simulatorlib.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/external.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/cocos2d.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_clipper.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_convertUTF.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_edtaa3func.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_luasocket.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_md5.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_poly2tri.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_recast.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_tinyxml2.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_tolua.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_unzip.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_xxhash.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/build/lib/Debug/ext_xxtea.lib

            #${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/Box2D/prebuilt/win32/debug/libbox2d.lib

            ${EXTERN_LIBRARY}
            
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/bullet/prebuilt/win32/debug/libbullet.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/chipmunk/prebuilt/win32/debug-lib/libchipmunk.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/curl/prebuilt/win32/libcurl.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/freetype2/prebuilt/win32/freetype.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/glfw3/prebuilt/win32/glfw3.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/jpeg/prebuilt/win32/libjpeg.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/openssl/prebuilt/win32/libcrypto.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/openssl/prebuilt/win32/libssl.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/png/prebuilt/win32/libpng.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/sqlite3/libraries/win32/sqlite3.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/tiff/prebuilt/win32/libtiff.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/webp/prebuilt/win32/libwebp.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/websockets/prebuilt/win32/websockets.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/gles/prebuilt/glew32.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/icon/prebuilt/libiconv.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/MP3Decoder/prebuilt/libmpg123.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/OggDecoder/prebuilt/libogg.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/OggDecoder/prebuilt/libvorbis.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.lib
            ${PROJECT_SOURCE_DIR}/libcocos/app/frameworks/cocos2d-x/external/win32-specific/zlib/prebuilt/libzlib.lib
        )
else()
    #set(PLATFROMDEP )
endif()

set(libcocos_HEADER 
        src/AppDelegate.h
        src/MainScene.h
        #${LIQUIDFUN_HEADER}
        #${LIQUIDFUNSPRITE_HEADER}
    )
set(libcocos_SOURCE    
        src/AppDelegate.cpp
        src/MainScene.cpp
        src/main.cpp
        #${LIQUIDFUN_SRC}
        #${LIQUIDFUNSPRITE_SRC}
    )




list(APPEND libcocos_SOURCE ${libcocos_HEADER})


add_executable(libcocos ${libcocos_SOURCE} )
    if (CMAKE_SYSTEM_NAME MATCHES "Windows")
        set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB:LIBC.LIB") 
        set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB:LIBC.LIB")
        set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB:LIBC.LIB")
    endif (CMAKE_SYSTEM_NAME MATCHES "Windows")
target_link_libraries(libcocos PUBLIC ${PLATFROMDEP})
复制代码

 

posted @   YZFHKMS-X  阅读(763)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-11-15 Windows 获取windows密码
2019-11-15 Windows NtQueryInformationProcess()
2019-11-15 Windows API 查看器
2019-11-15 Windows 屏幕保护程序
2019-11-15 C/C++ 表达式
2019-11-15 C/C++ 智能指针
2019-11-15 OpenGL ANYTOOL
点击右上角即可分享
微信分享提示