mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-18 21:14:35 +03:00
Refactored CMakeLists.txt.
This commit is contained in:
@@ -62,35 +62,45 @@ Include_Directories(${ASMJIT_SRC_DIR})
|
|||||||
Set(ASMJIT_DEPS)
|
Set(ASMJIT_DEPS)
|
||||||
Set(ASMJIT_LFLAGS)
|
Set(ASMJIT_LFLAGS)
|
||||||
|
|
||||||
Set(ASMJIT_CDEFS)
|
|
||||||
Set(ASMJIT_CDEFS_DBG ASMJIT_DEBUG)
|
|
||||||
Set(ASMJIT_CDEFS_REL ASMJIT_RELEASE)
|
|
||||||
|
|
||||||
Set(ASMJIT_CFLAGS)
|
Set(ASMJIT_CFLAGS)
|
||||||
Set(ASMJIT_CFLAGS_DBG)
|
Set(ASMJIT_CFLAGS_DBG)
|
||||||
Set(ASMJIT_CFLAGS_REL)
|
Set(ASMJIT_CFLAGS_REL)
|
||||||
|
|
||||||
|
# MSVC.
|
||||||
If(MSVC)
|
If(MSVC)
|
||||||
|
Message("-- Using MSVC")
|
||||||
Set(ASMJIT_LFLAGS "/OPT:REF /OPT:ICF")
|
Set(ASMJIT_LFLAGS "/OPT:REF /OPT:ICF")
|
||||||
Set(ASMJIT_CFLAGS /GF)
|
Set(ASMJIT_CFLAGS /GF)
|
||||||
Set(ASMJIT_CFLAGS_DBG /GS /GR-)
|
Set(ASMJIT_CFLAGS_DBG /DASMJIT_DEBUG /GS /GR-)
|
||||||
Set(ASMJIT_CFLAGS_REL /Oi /Oy /GS- /GR-)
|
Set(ASMJIT_CFLAGS_REL /DASMJIT_RELEASE /Oi /Oy /GS- /GR-)
|
||||||
|
|
||||||
|
# Use Unicode by default on Windows target.
|
||||||
|
If(WIN32)
|
||||||
|
List(APPEND ASMJIT_CFLAGS /D_UNICODE)
|
||||||
|
EndIf()
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
If(CMAKE_COMPILER_IS_GNUCXX)
|
# GCC.
|
||||||
Set(ASMJIT_CFLAGS -fno-exceptions)
|
If(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||||
Set(ASMJIT_CFLAGS_DBG -O0
|
Message("-- Using GCC")
|
||||||
|
Set(ASMJIT_CFLAGS
|
||||||
|
-fno-exceptions)
|
||||||
|
Set(ASMJIT_CFLAGS_DBG -DASMJIT_DEBUG -O0
|
||||||
-fno-inline-functions)
|
-fno-inline-functions)
|
||||||
Set(ASMJIT_CFLAGS_REL -O2
|
Set(ASMJIT_CFLAGS_REL -DASMJIT_RELEASE -O2
|
||||||
-finline-functions
|
-finline-functions
|
||||||
-fomit-frame-pointer
|
-fomit-frame-pointer
|
||||||
-fmerge-all-constants
|
-fmerge-all-constants
|
||||||
-fno-keep-static-consts)
|
-fno-keep-static-consts)
|
||||||
|
|
||||||
|
# Use Unicode by default on Windows target.
|
||||||
|
If(WIN32)
|
||||||
|
List(APPEND ASMJIT_CFLAGS -D_UNICODE)
|
||||||
|
EndIf()
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
If(WIN32)
|
# Dependencies - Base.
|
||||||
List(APPEND ASMJIT_CDEFS _UNICODE)
|
If(NOT WIN32)
|
||||||
Else()
|
|
||||||
List(APPEND ASMJIT_DEPS pthread)
|
List(APPEND ASMJIT_DEPS pthread)
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
@@ -101,61 +111,58 @@ Set(ASMJIT_CFLAGS_REL ${ASMJIT_CFLAGS} ${ASMJIT_CFLAGS_REL})
|
|||||||
# [AsmJit - Macros]
|
# [AsmJit - Macros]
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
Macro(AsmJit_AddSource DST BASE_PATH)
|
Macro(AsmJit_AddSource in_dst in_path)
|
||||||
Set(__list "")
|
Set(__list "")
|
||||||
Set(__path "${ASMJIT_SRC_DIR}/${BASE_PATH}")
|
Set(__path "${ASMJIT_SRC_DIR}/${in_path}")
|
||||||
|
|
||||||
ForEach(__name ${ARGN})
|
ForEach(__name ${ARGN})
|
||||||
Set(__file "${__path}/${__name}")
|
Set(__file "${__path}/${__name}")
|
||||||
Set(__cflags ${ASMJIT_CFLAGS})
|
Set(__cflags ${ASMJIT_CFLAGS})
|
||||||
|
|
||||||
If(__name MATCHES "\\.cpp|\\.h")
|
If(__name MATCHES "\\.cpp|\\.h")
|
||||||
If(${__cflags})
|
If("${__cflags}")
|
||||||
Set_Source_Files_Properties(${__name} PROPERTIES COMPILE_FLAGS ${__cflags})
|
Set_Source_Files_Properties(${__name} PROPERTIES COMPILE_FLAGS ${__cflags})
|
||||||
EndIf()
|
EndIf()
|
||||||
List(APPEND __list ${__file})
|
List(APPEND __list ${__file})
|
||||||
EndIf()
|
EndIf()
|
||||||
EndForEach()
|
EndForEach()
|
||||||
|
|
||||||
List(APPEND "${DST}" ${__list})
|
List(APPEND "${in_dst}" ${__list})
|
||||||
Source_Group(${BASE_PATH} FILES ${__list})
|
Source_Group(${in_path} FILES ${__list})
|
||||||
EndMacro()
|
EndMacro()
|
||||||
|
|
||||||
Macro(AsmJit_AddLibrary NAME SRC DEPS CDEFS_DBG CDEFS_REL CFLAGS_DBG CFLAGS_REL)
|
Macro(AsmJit_AddLibrary in_name in_src in_deps in_cflags in_cflags_dbg in_cflags_rel)
|
||||||
If(NOT ASMJIT_STATIC)
|
If(NOT ASMJIT_STATIC)
|
||||||
Set(__type "SHARED")
|
Set(__type "SHARED")
|
||||||
Else()
|
Else()
|
||||||
Set(__type "STATIC")
|
Set(__type "STATIC")
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
Add_Library(${NAME} ${__type} ${SRC})
|
Add_Library(${in_name} ${__type} ${in_src})
|
||||||
|
|
||||||
# Dependencies.
|
# Dependencies.
|
||||||
Target_Link_Libraries(${NAME} ${DEPS})
|
Target_Link_Libraries(${in_name} ${in_deps})
|
||||||
|
|
||||||
# Compiler Flags.
|
# Compiler Flags.
|
||||||
If(${CMAKE_BUILD_TYPE})
|
If(${CMAKE_BUILD_TYPE})
|
||||||
If(${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
If(${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
||||||
Set_Target_Properties(${NAME} PROPERTIES COMPILE_DEFINITIONS ${ASMJIT_CDEFS_DBG})
|
Set_Target_Properties(${in_name} PROPERTIES COMPILE_FLAGS ${in_cflags} ${in_cflags_dbg})
|
||||||
Set_Target_Properties(${NAME} PROPERTIES COMPILE_FLAGS ${ASMJIT_CFLAGS_DBG})
|
|
||||||
Else()
|
Else()
|
||||||
Set_Target_Properties(${NAME} PROPERTIES COMPILE_DEFINITIONS ${ASMJIT_CDEFS_REL})
|
Set_Target_Properties(${in_name} PROPERTIES COMPILE_FLAGS ${in_cflags} ${in_cflags_rel})
|
||||||
Set_Target_Properties(${NAME} PROPERTIES COMPILE_FLAGS ${ASMJIT_CFLAGS_REL})
|
|
||||||
EndIf()
|
EndIf()
|
||||||
Else()
|
Else()
|
||||||
Target_Compile_Definitions(${NAME} PUBLIC
|
Target_Compile_Options(${in_name} PUBLIC
|
||||||
$<$<CONFIG:Debug>:${CDEFS_DBG}>$<$<NOT:$<CONFIG:Debug>>:${CDEFS_REL}>)
|
${in_cflags}
|
||||||
|
$<$<CONFIG:Debug>:${in_cflags_dbg}>
|
||||||
Target_Compile_Options(${NAME} PUBLIC
|
$<$<NOT:$<CONFIG:Debug>>:${in_cflags_rel}>)
|
||||||
$<$<CONFIG:Debug>:${CFLAGS_DBG}>$<$<NOT:$<CONFIG:Debug>>:${CFLAGS_REL}>)
|
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
# Linker Flags.
|
# Linker Flags.
|
||||||
Set_Target_Properties(${NAME} PROPERTIES LINK_FLAGS "${ASMJIT_LFLAGS}")
|
Set_Target_Properties(${in_name} PROPERTIES LINK_FLAGS "${ASMJIT_LFLAGS}")
|
||||||
|
|
||||||
# Install Instructions.
|
# Install Instructions.
|
||||||
If(NOT ASMJIT_STATIC)
|
If(NOT ASMJIT_STATIC)
|
||||||
Install(TARGETS ${NAME} DESTINATION lib)
|
Install(TARGETS ${in_name} DESTINATION lib)
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
Unset(__type)
|
Unset(__type)
|
||||||
@@ -249,8 +256,8 @@ If(NOT ASMJIT_STATIC)
|
|||||||
Get_Filename_Component(path ${i} PATH)
|
Get_Filename_Component(path ${i} PATH)
|
||||||
Get_Filename_Component(name ${i} NAME)
|
Get_Filename_Component(name ${i} NAME)
|
||||||
String(REGEX REPLACE "^${ASMJIT_SRC_DIR}/" "" targetpath "${path}")
|
String(REGEX REPLACE "^${ASMJIT_SRC_DIR}/" "" targetpath "${path}")
|
||||||
If(${name} MATCHES ".h$")
|
If(name MATCHES ".h$")
|
||||||
If(NOT "${name}" MATCHES "_p.h$")
|
If(NOT name MATCHES "_p.h$")
|
||||||
Install(FILES ${i} DESTINATION "include/${targetpath}")
|
Install(FILES ${i} DESTINATION "include/${targetpath}")
|
||||||
EndIf()
|
EndIf()
|
||||||
EndIf()
|
EndIf()
|
||||||
@@ -264,8 +271,7 @@ EndIf()
|
|||||||
AsmJit_AddLibrary(asmjit
|
AsmJit_AddLibrary(asmjit
|
||||||
"${ASMJIT_SRC}"
|
"${ASMJIT_SRC}"
|
||||||
"${ASMJIT_DEPS}"
|
"${ASMJIT_DEPS}"
|
||||||
"${ASMJIT_CDEFS_DBG}"
|
"${ASMJIT_CFLAGS}"
|
||||||
"${ASMJIT_CDEFS_REL}"
|
|
||||||
"${ASMJIT_CFLAGS_DBG}"
|
"${ASMJIT_CFLAGS_DBG}"
|
||||||
"${ASMJIT_CFLAGS_REL}"
|
"${ASMJIT_CFLAGS_REL}"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user