Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graphite/3rdparty/angelscript/CMakeLists.txt
2024-01-03 16:05:02 -05:00

128 lines
No EOL
3.6 KiB
CMake

project(Angelscript)
set(INCLUDE_FILES
include/angelscript.h
include/as_array.h
include/as_atomic.h
include/as_builder.h
include/as_bytecode.h
include/as_callfunc.h
include/as_compiler.h
include/as_config.h
include/as_configgroup.h
include/as_context.h
include/as_criticalsection.h
include/as_datatype.h
include/as_debug.h
include/as_gc.h
include/as_generic.h
include/as_map.h
include/as_memory.h
include/as_module.h
include/as_namespace.h
include/as_objecttype.h
include/as_outputbuffer.h
include/as_parser.h
include/as_property.h
include/as_restore.h
include/as_scriptcode.h
include/as_scriptengine.h
include/as_scriptfunction.h
include/as_scriptnode.h
include/as_scriptobject.h
include/as_string.h
include/as_string_util.h
include/as_symboltable.h
include/as_texts.h
include/as_thread.h
include/as_tokendef.h
include/as_tokenizer.h
include/as_typeinfo.h
include/as_variablescope.h
include/scriptstdstring.h
include/scriptarray.h)
set(SOURCE_FILES
src/as_atomic.cpp
src/as_builder.cpp
src/as_bytecode.cpp
src/as_callfunc.cpp
src/as_callfunc_mips.cpp
src/as_callfunc_x86.cpp
src/as_callfunc_x64_gcc.cpp
src/as_callfunc_x64_msvc.cpp
src/as_callfunc_x64_mingw.cpp
src/as_compiler.cpp
src/as_configgroup.cpp
src/as_context.cpp
src/as_datatype.cpp
src/as_gc.cpp
src/as_generic.cpp
src/as_globalproperty.cpp
src/as_memory.cpp
src/as_module.cpp
src/as_objecttype.cpp
src/as_outputbuffer.cpp
src/as_parser.cpp
src/as_restore.cpp
src/as_scriptcode.cpp
src/as_scriptengine.cpp
src/as_scriptfunction.cpp
src/as_scriptnode.cpp
src/as_scriptobject.cpp
src/as_string.cpp
src/as_string_util.cpp
src/as_thread.cpp
src/as_tokenizer.cpp
src/as_typeinfo.cpp
src/as_variablescope.cpp
src/scriptstdstring.cpp
src/scriptstdstring_utils.cpp
src/scriptarray.cpp)
add_definitions(-DANGELSCRIPT_EXPORT -D_LIB)
if(MSVC AND CMAKE_CL_64)
enable_language(ASM_MASM)
if(CMAKE_ASM_MASM_COMPILER_WORKS)
set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} src/as_callfunc_x64_msvc_asm.asm)
else()
message(FATAL ERROR "MSVC x86_64 target requires a working assembler")
endif()
endif()
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm")
enable_language(ASM)
if(CMAKE_ASM_COMPILER_WORKS)
set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} src/as_callfunc_arm.cpp src/as_callfunc_arm_gcc.S)
set_property(SOURCE src/as_callfunc_arm_gcc.S APPEND PROPERTY COMPILE_FLAGS " -Wa,-mimplicit-it=always")
else()
message(FATAL ERROR "ARM target requires a working assembler")
endif()
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
if(MSVC)
set(CMAKE_DEBUG_POSTFIX "d")
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
endif()
# Fix x64 issues on Linux
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND NOT APPLE)
add_definitions(-fPIC)
endif()
add_library(Angelscript ${SOURCE_FILES} ${INCLUDE_FILES})
target_link_libraries(Angelscript ${CMAKE_THREAD_LIBS_INIT})
if(UNIX)
target_link_libraries(Angelscript pthread)
endif()
include_directories(include)
if(MSVC)
set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES COMPILE_FLAGS "/MP")
endif()