@ -11,59 +11,59 @@ find_package(Git)
if ( GIT_FOUND )
# m a k e s u r e v e r s i o n i n f o r m a t i o n g e t s r e - r u n w h e n t h e c u r r e n t G i t H E A D c h a n g e s
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } rev-parse --git-path HEAD
O U T P U T _ V A R I A B L E u r d e _ g i t _ h e a d _ f i l e n a m e
O U T P U T _ V A R I A B L E m e t a f o r c e _ g i t _ h e a d _ f i l e n a m e
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
set_property ( DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urd e_git_head_filename}" )
set_property ( DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${metaforc e_git_head_filename}" )
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } rev-parse --symbolic-full-name HEAD
O U T P U T _ V A R I A B L E u r d e _ g i t _ h e a d _ s y m b o l i c
O U T P U T _ V A R I A B L E m e t a f o r c e _ g i t _ h e a d _ s y m b o l i c
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR }
C O M M A N D $ { G I T _ E X E C U T A B L E } r e v - p a r s e - - g i t - p a t h $ { u r d e _ g i t _ h e a d _ s y m b o l i c }
O U T P U T _ V A R I A B L E u r d e _ g i t _ h e a d _ s y m b o l i c _ f i l e n a m e
C O M M A N D $ { G I T _ E X E C U T A B L E } r e v - p a r s e - - g i t - p a t h $ { m e t a f o r c e _ g i t _ h e a d _ s y m b o l i c }
O U T P U T _ V A R I A B L E m e t a f o r c e _ g i t _ h e a d _ s y m b o l i c _ f i l e n a m e
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
set_property ( DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urd e_git_head_symbolic_filename}" )
set_property ( DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${metaforc e_git_head_symbolic_filename}" )
# d e f i n e s U R D E _ W C _ R E V I S I O N
# d e f i n e s M E T A F O R C E _ W C _ R E V I S I O N
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } rev-parse HEAD
O U T P U T _ V A R I A B L E U R D E _ W C _ R E V I S I O N
O U T P U T _ V A R I A B L E M E T A F O R C E _ W C _ R E V I S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
# d e f i n e s U R D E _ W C _ D E S C R I B E
# d e f i n e s M E T A F O R C E _ W C _ D E S C R I B E
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } describe --tag --long --dirty
O U T P U T _ V A R I A B L E U R D E _ W C _ D E S C R I B E
O U T P U T _ V A R I A B L E M E T A F O R C E _ W C _ D E S C R I B E
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
# r e m o v e hash ( and trailing "-0" if needed ) f r o m d e s c r i p t i o n
string ( REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" URDE_WC_DESCRIBE "${URD E_WC_DESCRIBE}")
string ( REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" METAFORCE_WC_DESCRIBE "${METAFORC E_WC_DESCRIBE}")
# d e f i n e s U R D E _ W C _ B R A N C H
# d e f i n e s M E T A F O R C E _ W C _ B R A N C H
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } rev-parse --abbrev-ref HEAD
O U T P U T _ V A R I A B L E U R D E _ W C _ B R A N C H
O U T P U T _ V A R I A B L E M E T A F O R C E _ W C _ B R A N C H
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
# d e f i n e s U R D E _ W C _ D A T E
# d e f i n e s M E T A F O R C E _ W C _ D A T E
execute_process ( WORKING_DIRECTORY ${ CMAKE_SOURCE_DIR } COMMAND ${ GIT_EXECUTABLE } log -1 --format=%ad
O U T P U T _ V A R I A B L E U R D E _ W C _ D A T E
O U T P U T _ V A R I A B L E M E T A F O R C E _ W C _ D A T E
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
else ( )
message ( STATUS "Unable to find git, commit information will not be available" )
endif ( )
if ( URD E_WC_DESCRIBE)
string ( REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+).*" "\\1.\\2.\\3.\\4" URDE_VERSION_STRING "${URD E_WC_DESCRIBE}")
string ( REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+).*" "\\1.\\2.\\3" URDE_VERSION_STRING "${URD E_VERSION_STRING}")
if ( METAFORC E_WC_DESCRIBE)
string ( REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+).*" "\\1.\\2.\\3.\\4" METAFORCE_VERSION_STRING "${METAFORC E_WC_DESCRIBE}")
string ( REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+).*" "\\1.\\2.\\3" METAFORCE_VERSION_STRING "${METAFORC E_VERSION_STRING}")
else ( )
set ( URD E_WC_DESCRIBE "UNKNOWN-VERSION" )
set ( URD E_VERSION_STRING "0.0.0" )
set ( METAFORC E_WC_DESCRIBE "UNKNOWN-VERSION" )
set ( METAFORC E_VERSION_STRING "0.0.0" )
endif ( )
string ( TIMESTAMP CURRENT_YEAR "%Y" )
# A d d v e r s i o n i n f o r m a t i o n t o C I e n v i r o n m e n t v a r i a b l e s
if ( DEFINED ENV{GITHUB_ENV} )
file ( APPEND "$ENV{GITHUB_ENV}" "URDE_VERSION=${URD E_WC_DESCRIBE}" )
file ( APPEND "$ENV{GITHUB_ENV}" "METAFORCE_VERSION=${METAFORC E_WC_DESCRIBE}" )
endif ( )
message ( STATUS "URDE version set to ${URD E_WC_DESCRIBE}" )
project ( urd e LANGUAGES C CXX ASM VERSION ${ URD E_VERSION_STRING} )
message ( STATUS "Metaforce version set to ${METAFORC E_WC_DESCRIBE}" )
project ( metaforc e LANGUAGES C CXX ASM VERSION ${ METAFORC E_VERSION_STRING} )
if ( APPLE )
set ( PLATFORM_NAME macos )
@ -82,8 +82,8 @@ if(APPLE AND NOT CMAKE_OSX_SYSROOT)
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
endif ( )
option ( URD E_CROSSCOMPILING "Don't build tools; attempt package import" OFF )
if ( URD E_CROSSCOMPILING)
option ( METAFORC E_CROSSCOMPILING "Don't build tools; attempt package import" OFF )
if ( METAFORC E_CROSSCOMPILING)
set ( CMAKE_CROSSCOMPILING On )
endif ( )
@ -107,19 +107,19 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/extern/sanitizers-cmake/cmake
find_package ( Sanitizers )
if ( CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64 )
set ( URD E_VECTOR_ISA "sse41" CACHE STRING "Vector ISA to build for (sse2, sse3, sse41, avx, avx2)" )
set ( METAFORC E_VECTOR_ISA "sse41" CACHE STRING "Vector ISA to build for (sse2, sse3, sse41, avx, avx2)" )
endif ( )
if ( MSVC )
if ( ${ URD E_VECTOR_ISA} STREQUAL "avx2" )
if ( ${ METAFORC E_VECTOR_ISA} STREQUAL "avx2" )
add_compile_options ( /arch:AVX2 )
add_compile_definitions ( __SSE4_1__=1 )
message ( STATUS "Building with AVX2 Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "avx" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "avx" )
add_compile_options ( /arch:AVX )
add_compile_definitions ( __SSE4_1__=1 )
message ( STATUS "Building with AVX Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "sse41" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "sse41" )
add_compile_definitions ( __SSE4_1__=1 )
# c l a n g - c l 1 0 r e q u i r e s - m s s e 4 . 1 , m a y b e f i x e d i n n e w e r v e r s i o n s ?
if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL Clang )
@ -132,7 +132,7 @@ if(MSVC)
if ( ${ CMAKE_GENERATOR } MATCHES "Visual Studio*" )
set ( VS_OPTIONS "/MP" )
set_property ( DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT urd e)
set_property ( DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT metaforc e)
endif ( )
# S h a d d u p MSVC
@ -199,22 +199,22 @@ if(MSVC)
else ( )
if ( ${ CMAKE_SYSTEM_PROCESSOR } STREQUAL x86_64 )
if ( ${ URD E_VECTOR_ISA} STREQUAL "native" )
if ( ${ METAFORC E_VECTOR_ISA} STREQUAL "native" )
add_compile_options ( -march=native )
message ( STATUS "Building with native ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "avx2" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "avx2" )
add_compile_options ( -mavx2 )
message ( STATUS "Building with AVX2 Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "avx" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "avx" )
add_compile_options ( -mavx )
message ( STATUS "Building with AVX Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "sse41" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "sse41" )
add_compile_options ( -msse4.1 )
message ( STATUS "Building with SSE4.1 Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "sse3" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "sse3" )
add_compile_options ( -msse3 )
message ( STATUS "Building with SSE3 Vector ISA" )
elseif ( ${ URD E_VECTOR_ISA} STREQUAL "sse2" )
elseif ( ${ METAFORC E_VECTOR_ISA} STREQUAL "sse2" )
add_compile_options ( -msse2 )
message ( STATUS "Building with SSE2 Vector ISA" )
else ( )
@ -233,7 +233,7 @@ else()
add_compile_options ( -fno-asynchronous-unwind-tables )
endif ( )
if ( URD E_MSAN)
if ( METAFORC E_MSAN)
add_compile_options ( $< $<COMPILE_LANGUAGE:CXX > :-stdlib=libc++> -fsanitize=memory
- f s a n i t i z e - m e m o r y - t r a c k - o r i g i n s - f s a n i t i z e - r e c o v e r = a l l )
endif ( )
@ -252,7 +252,7 @@ else()
if ( APPLE )
add_compile_options ( -Wno-error=deprecated-declarations
$ < $ < C O N F I G : R e l e a s e > : - f l t o = t h i n > )
if ( URD E_ASAN)
if ( METAFORC E_ASAN)
add_compile_options ( -fsanitize=address -fsanitize-address-use-after-scope )
add_link_options ( -fsanitize=address -fsanitize-address-use-after-scope )
endif ( )
@ -456,13 +456,13 @@ if (NOT WINDOWS_STORE AND NOT NX)
find_package ( Qt6Widgets QUIET PATHS ${ QT_HOMEBREW_PATH } )
find_package ( Qt5Widgets QUIET PATHS ${ QT_HOMEBREW_PATH } )
if ( Qt6Widgets_FOUND )
message ( STATUS "Qt6 found, hecl -gui will be built" )
add_subdirectory ( hecl -gui)
message ( STATUS "Qt6 found, metaforce -gui will be built" )
add_subdirectory ( metaforce -gui)
elseif ( Qt5Widgets_FOUND )
message ( STATUS "Qt5 found, hecl -gui will be built" )
add_subdirectory ( hecl -gui)
message ( STATUS "Qt5 found, metaforce -gui will be built" )
add_subdirectory ( metaforce -gui)
else ( )
message ( STATUS "Qt5-6 not found, hecl -gui will not be built" )
message ( STATUS "Qt5-6 not found, metaforce -gui will not be built" )
endif ( )
endif ( )