0% found this document useful (0 votes)
3 views

c Make Lists

The document is a CMake configuration file for a project named 'cri', which sets up source files and linked libraries for different platforms including Android, iOS, and macOS. It defines the source file paths, includes directories, and links necessary libraries based on the target platform. Additionally, it specifies output directories for the generated libraries.

Uploaded by

rubenxenomoncayo
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

c Make Lists

The document is a CMake configuration file for a project named 'cri', which sets up source files and linked libraries for different platforms including Android, iOS, and macOS. It defines the source file paths, includes directories, and links necessary libraries based on the target platform. Additionally, it specifies output directories for the generated libraries.

Uploaded by

rubenxenomoncayo
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

set(APP_NAME cri)

project (${APP_NAME} CXX)

set(LOCAL_SRC_FILES)
if(ANDROID)
set(CRICOCOS2D_SRC_RELPATH ${CMAKE_CURRENT_SOURCE_DIR}/cocos2d-x-3.x/src)
set(CRI_MANA_FILES_CXX
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/cricocos2d.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/LibraryContext.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/Player.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/Sprite.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/detail/util.cpp

${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/detail/RendererResourceFactorySet.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/detail/RendererResource/
SofdecPrimeGLES2.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/mana/detail/RendererResource/
H264_android.cpp
${CRICOCOS2D_SRC_RELPATH}/cricocos2d/detail/log.cpp
)
list(APPEND LOCAL_SRC_FILES ${CRI_MANA_FILES_CXX})
else()
file(GLOB_RECURSE CRI_MANA_FILES_CXX ${CMAKE_CURRENT_SOURCE_DIR}/cocos2d-x-
3.x/src/*.cpp)
list(APPEND LOCAL_SRC_FILES ${CRI_MANA_FILES_CXX})
endif()

set(COCOS_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cocos2d)
set(COCOS_PATH ${COCOS_ROOT_PATH}/cocos)
include(${COCOS_ROOT_PATH}/cmake/Modules/CocosConfigDefine.cmake)

set(LOCAL_C_INCLUDES
${COCOS_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/cocos2d-x-3.x/src
)

set(LINKED_LIBRARIES)

if(ANDROID)
set(LINKED_LIBRARIES

"${CMAKE_CURRENT_SOURCE_DIR}/android/libs/${ANDROID_ABI}/libcri_mana_android.a"

"${CMAKE_CURRENT_SOURCE_DIR}/android/libs/${ANDROID_ABI}/libcri_atom_android.a"

"${CMAKE_CURRENT_SOURCE_DIR}/android/libs/${ANDROID_ABI}/libcri_file_system_android
.a"

"${CMAKE_CURRENT_SOURCE_DIR}/android/libs/${ANDROID_ABI}/libcri_file_system_net_and
roid.a"

"${CMAKE_CURRENT_SOURCE_DIR}/android/libs/${ANDROID_ABI}/libcri_base_android.a"
)
list(APPEND LOCAL_C_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/android/include
${COCOS_PATH}/platform/android
)
elseif(IOS)
set(LINKED_LIBRARIES
"${CMAKE_CURRENT_SOURCE_DIR}/ios/libs/libcri_mana_android.a"
"${CMAKE_CURRENT_SOURCE_DIR}/ios/libs/libcri_atom_android.a"
"${CMAKE_CURRENT_SOURCE_DIR}/ios/libs/libcri_file_system_android.a"
"${CMAKE_CURRENT_SOURCE_DIR}/ios/libs/libcri_file_system_net_android.a"
"${CMAKE_CURRENT_SOURCE_DIR}/ios/libs/libcri_base_android.a"
)
list(APPEND LOCAL_C_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/ios/include
${COCOS_PATH}/platform/ios
)
elseif(MACOSX)
set(LINKED_LIBRARIES
"${CMAKE_CURRENT_SOURCE_DIR}/macosx/libs/libcri_mana_macosx.a"
"${CMAKE_CURRENT_SOURCE_DIR}/macosx/libs/libcri_atom_macosx.a"
"${CMAKE_CURRENT_SOURCE_DIR}/macosx/libs/libcri_file_system_macosx.a"
"${CMAKE_CURRENT_SOURCE_DIR}/macosx/libs/libcri_file_system_net_macosx.a"
"${CMAKE_CURRENT_SOURCE_DIR}/macosx/libs/libcri_base_macosx.a"
)
list(APPEND LOCAL_C_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/macosx/include
${COCOS_PATH}/platform/mac
${COCOS_ROOT_PATH}/external/glfw3/include/mac
)
endif()

add_library(${APP_NAME} STATIC dummy.cpp)

add_library(crisource STATIC ${LOCAL_SRC_FILES})


target_include_directories(crisource PRIVATE ${LOCAL_C_INCLUDES})
target_link_libraries(${APP_NAME} PUBLIC crisource)

# 依存するバイナリを依存関係に追加
foreach(_lib IN LISTS LINKED_LIBRARIES)
get_filename_component(_libname ${_lib} NAME_WE)
set(_sub_target_name ext_${_libname})
add_library(${_sub_target_name} STATIC IMPORTED GLOBAL)

set_target_properties(${_sub_target_name} PROPERTIES
IMPORTED_LOCATION ${_lib}
)
target_link_libraries(${APP_NAME} PUBLIC ${_sub_target_name})
endforeach()

set_target_properties(${APP_NAME} PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
)

You might also like