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 @ 2020-11-15 15:19  YZFHKMS-X  阅读(745)  评论(0编辑  收藏  举报