mirror of
https://github.com/charlesthobe/chdman.git
synced 2024-10-18 10:19:58 +00:00
CMake files now better resemble the genie scripts of MAME
Might now compile on Windows, freebsd and macOS?
This commit is contained in:
parent
e8e1c21b65
commit
f0db2ff486
@ -8,6 +8,30 @@ if(NOT CMAKE_BUILD_TYPE)
|
|||||||
set(CMAKE_BUILD_TYPE Release)
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 17) #needed by libocore and libutils. -
|
||||||
|
#set globally to match MAME's genie scripts.
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
add_compile_definitions(
|
||||||
|
X64_WINDOWS_ABI
|
||||||
|
CRLF=3
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
add_compile_definitions(
|
||||||
|
CRLF=2
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wbad-function-cast")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
function(addprojectflags)
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override -flifetime-dse=1")
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
add_subdirectory(cmake_subdirs)
|
add_subdirectory(cmake_subdirs)
|
||||||
|
|
||||||
#chdman
|
#chdman
|
||||||
@ -15,6 +39,7 @@ add_executable(chdman
|
|||||||
${CMAKE_SOURCE_DIR}/src/tools/chdman.cpp
|
${CMAKE_SOURCE_DIR}/src/tools/chdman.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/version.cpp
|
${CMAKE_SOURCE_DIR}/src/version.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(chdman PRIVATE
|
target_include_directories(chdman PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/src/osd
|
${CMAKE_SOURCE_DIR}/src/osd
|
||||||
${CMAKE_SOURCE_DIR}/src/lib/util
|
${CMAKE_SOURCE_DIR}/src/lib/util
|
||||||
@ -27,8 +52,5 @@ BARE_BUILD_VERSION="${build_version}"
|
|||||||
BARE_VCS_REVISION="${vcs_revision}"
|
BARE_VCS_REVISION="${vcs_revision}"
|
||||||
)
|
)
|
||||||
|
|
||||||
#linking
|
|
||||||
#target_link_libraries(ocore_sdl PRIVATE SDL2)
|
|
||||||
|
|
||||||
target_link_libraries(chdman PRIVATE utils expat 7z ocore_sdl zlib flac utf8proc
|
target_link_libraries(chdman PRIVATE utils expat 7z ocore_sdl zlib flac utf8proc
|
||||||
dl rt m pthread util)
|
dl rt m pthread util)
|
||||||
|
@ -1,8 +1,19 @@
|
|||||||
#lib7z
|
#lib7z
|
||||||
add_compile_definitions(_7ZIP_PPMD_SUPPPORT _7ZIP_ST)
|
|
||||||
set(CMAKE_C_FLAGS "-Wno-strict-prototypes -Wno-undef -Wno-misleading-indentation")
|
|
||||||
set(7z_dir ${CMAKE_SOURCE_DIR}/3rdparty/lzma)
|
set(7z_dir ${CMAKE_SOURCE_DIR}/3rdparty/lzma)
|
||||||
|
|
||||||
|
if(CMAKE_GENERATOR STREQUAL "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL "Ninja")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-strict-prototypes -Wno-undef")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 10.0)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-misleading-indentation")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_compile_definitions(
|
||||||
|
_7ZIP_PPMD_SUPPPORT
|
||||||
|
_7ZIP_ST
|
||||||
|
)
|
||||||
|
|
||||||
add_library(7z STATIC
|
add_library(7z STATIC
|
||||||
${7z_dir}/C/7zAlloc.c
|
${7z_dir}/C/7zAlloc.c
|
||||||
${7z_dir}/C/7zArcIn.c
|
${7z_dir}/C/7zArcIn.c
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#libexpat
|
#libexpat
|
||||||
option(BIGENDIAN OFF)
|
#option(BIGENDIAN OFF)
|
||||||
set(expat_dir ${CMAKE_SOURCE_DIR}/3rdparty/expat)
|
set(expat_dir ${CMAKE_SOURCE_DIR}/3rdparty/expat)
|
||||||
|
|
||||||
add_compile_definitions(
|
add_compile_definitions(
|
||||||
@ -20,15 +20,25 @@ XML_CONTEXT_BYTES=1024
|
|||||||
XML_DTD
|
XML_DTD
|
||||||
XML_NS
|
XML_NS
|
||||||
)
|
)
|
||||||
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.1)
|
|
||||||
set(CMAKE_C_FLAGS "-Wno-maybe-uninitialized")
|
#if(BIGENDIAN)
|
||||||
|
#add_compile_definitions(
|
||||||
|
# BYTEORDER=4321
|
||||||
|
# WORDS_BIGENDIAN
|
||||||
|
#)
|
||||||
|
#else()
|
||||||
|
add_compile_definitions(
|
||||||
|
BYTEORDER=1234
|
||||||
|
)
|
||||||
|
#endif()
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
||||||
|
add_compile_definitions(
|
||||||
|
HAVE_ARC4RANDOM
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BIGENDIAN)
|
|
||||||
add_compile_definitions(BYTEORDER=4321 WORDS_BIGENDIAN)
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
else()
|
|
||||||
add_compile_definitions(BYTEORDER=1234)
|
|
||||||
endif()
|
|
||||||
#if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
||||||
add_compile_definitions(
|
add_compile_definitions(
|
||||||
HAVE_DLFCN_H
|
HAVE_DLFCN_H
|
||||||
HAVE_FCNTL_H
|
HAVE_FCNTL_H
|
||||||
@ -38,7 +48,7 @@ HAVE_SYS_TYPES_H
|
|||||||
HAVE_UNISTD_H
|
HAVE_UNISTD_H
|
||||||
XML_DEV_URANDOM
|
XML_DEV_URANDOM
|
||||||
)
|
)
|
||||||
#endif()
|
endif()
|
||||||
|
|
||||||
add_library(expat STATIC
|
add_library(expat STATIC
|
||||||
${expat_dir}/lib/xmlparse.c
|
${expat_dir}/lib/xmlparse.c
|
||||||
|
@ -11,13 +11,17 @@ HAVE_CONFIG_H=1
|
|||||||
)
|
)
|
||||||
|
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
set(CMAKE_C_FLAGS "-Wno-unused-function -O0")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function -O0")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") #fixme: or android
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-enum-conversion")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-enum-conversion")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-attributes")
|
||||||
|
endif()
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${flac_dir}/src/libFLAC/include
|
${flac_dir}/src/libFLAC/include
|
||||||
${flac_dir}/include
|
${flac_dir}/include
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#ocore_sdl
|
#ocore_sdl
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/src/emu
|
${CMAKE_SOURCE_DIR}/src/emu
|
||||||
${CMAKE_SOURCE_DIR}/src/osd
|
${CMAKE_SOURCE_DIR}/src/osd
|
||||||
@ -18,13 +17,29 @@ ${CMAKE_SOURCE_DIR}/src/osd/osdsync.cpp
|
|||||||
${CMAKE_SOURCE_DIR}/src/osd/osdsync.h
|
${CMAKE_SOURCE_DIR}/src/osd/osdsync.h
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/osdmodule.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/osdmodule.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/osdmodule.h
|
${CMAKE_SOURCE_DIR}/src/osd/modules/osdmodule.h
|
||||||
#${CMAKE_SOURCE_DIR}/src/osd/modules/lib/osdlib_unix.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/lib/osd_getenv.cpp #instead of osdlib_${target_os}.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/lib/osd_getenv.cpp
|
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/lib/osdlib.h
|
${CMAKE_SOURCE_DIR}/src/osd/modules/lib/osdlib.h
|
||||||
|
)
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
target_sources(ocore_sdl PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixdir.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixdir.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixfile.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixfile.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixfile.h
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixfile.h
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixptty.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixptty.cpp
|
||||||
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixsocket.cpp
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/posixsocket.cpp
|
||||||
#${CMAKE_SOURCE_DIR}/src/osd/modules/file/stdfile.cpp
|
|
||||||
)
|
)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
target_sources(ocore_sdl PRIVATE
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/windir.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/winfile.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/winfile.h
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/winptty.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/winsocket.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/windows/winutil.cpp
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
target_sources(ocore_sdl PRIVATE
|
||||||
|
${CMAKE_SOURCE_DIR}/src/osd/modules/file/stdfile.cpp
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
#utf8proc
|
#utf8proc
|
||||||
set(utf8proc_dir ${CMAKE_SOURCE_DIR}/3rdparty/utf8proc)
|
set(utf8proc_dir ${CMAKE_SOURCE_DIR}/3rdparty/utf8proc)
|
||||||
add_compile_definitions(UTF8PROC_STATIC)
|
add_compile_definitions(
|
||||||
|
UTF8PROC_STATIC
|
||||||
|
)
|
||||||
|
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
set(CMAKE_C_FLAGS "-Wno-strict-prototypes")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-strict-prototypes")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(utf8proc STATIC
|
add_library(utf8proc STATIC
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
#utils
|
#utils
|
||||||
set(utils_dir ${CMAKE_SOURCE_DIR}/src/lib/util)
|
set(utils_dir ${CMAKE_SOURCE_DIR}/src/lib/util)
|
||||||
|
|
||||||
add_compile_definitions(UTF8PROC_STATIC)
|
addprojectflags()
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
#if unix
|
|
||||||
add_compile_definitions(CRLF=2)
|
|
||||||
#endif()
|
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/src/osd
|
${CMAKE_SOURCE_DIR}/src/osd
|
||||||
@ -17,6 +13,10 @@ ${CMAKE_SOURCE_DIR}/3rdparty/libflac/include
|
|||||||
${CMAKE_SOURCE_DIR}/3rdparty/utf8proc
|
${CMAKE_SOURCE_DIR}/3rdparty/utf8proc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_compile_definitions(
|
||||||
|
UTF8PROC_STATIC
|
||||||
|
)
|
||||||
|
|
||||||
add_library(utils STATIC
|
add_library(utils STATIC
|
||||||
${utils_dir}/abi.h
|
${utils_dir}/abi.h
|
||||||
${utils_dir}/avhuff.cpp
|
${utils_dir}/avhuff.cpp
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
#zlib
|
#zlib
|
||||||
set(zlib_dir ${CMAKE_SOURCE_DIR}/3rdparty/zlib)
|
set(zlib_dir ${CMAKE_SOURCE_DIR}/3rdparty/zlib)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "-Wno-shift-negative-value")
|
if(CMAKE_C_COMPILER_ID STREQUAL "Clang") #fixme: or android
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-shift-negative-value")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" OR ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-strict-prototypes")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-strict-prototypes")
|
||||||
endif()
|
endif()
|
||||||
add_compile_definitions(ZLIB_CONST)
|
|
||||||
|
add_compile_definitions(
|
||||||
|
ZLIB_CONST
|
||||||
|
)
|
||||||
|
|
||||||
add_library(zlib STATIC
|
add_library(zlib STATIC
|
||||||
${zlib_dir}/adler32.c
|
${zlib_dir}/adler32.c
|
||||||
|
Loading…
Reference in New Issue
Block a user