fix cmake build issue. fix build type checker. rm IronPad windows header including under linux
This commit is contained in:
parent
8083633a7b
commit
0a168ac5cc
65
BMap/CMakeLists.txt
Normal file
65
BMap/CMakeLists.txt
Normal file
|
@ -0,0 +1,65 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
project(BMap LANGUAGES CXX)
|
||||
|
||||
# add libcmo if not existed
|
||||
if (NOT TARGET LibCmo)
|
||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
||||
endif ()
|
||||
# add ironpad if not existed
|
||||
if (NOT TARGET IronPad)
|
||||
add_subdirectory("../IronPad" "IronPad.out")
|
||||
endif ()
|
||||
|
||||
# hide all function in default
|
||||
# fix imported library PIC issue (i don't know why. just make it works)
|
||||
set_target_properties(LibCmo
|
||||
PROPERTIES
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
set_target_properties(IronPad
|
||||
PROPERTIES
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
# setup sources
|
||||
set(bmap_headers ".")
|
||||
set(bmap_sources
|
||||
BMap.cpp
|
||||
BMExports.cpp
|
||||
)
|
||||
|
||||
# generate shared library
|
||||
add_library(BMap
|
||||
SHARED
|
||||
${bmap_sources}
|
||||
)
|
||||
target_link_libraries(BMap
|
||||
PRIVATE
|
||||
LibCmo
|
||||
IronPad
|
||||
)
|
||||
target_include_directories(BMap
|
||||
PRIVATE
|
||||
${bmap_headers}
|
||||
)
|
||||
|
||||
# set project standard
|
||||
set_target_properties(BMap
|
||||
PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED 20
|
||||
CXX_EXTENSION OFF
|
||||
)
|
||||
# set default visibility to hidden
|
||||
set_target_properties(BMap
|
||||
PROPERTIES
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
)
|
||||
# add export used macro flag
|
||||
target_compile_definitions(BMap
|
||||
PUBLIC
|
||||
LIBCMO_EXPORTING
|
||||
)
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
project(IronPad LANGUAGES CXX)
|
||||
|
||||
# set standard
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# add libcmo
|
||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
||||
# add libcmo if not existed
|
||||
if (NOT TARGET LibCmo)
|
||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
||||
endif ()
|
||||
|
||||
# setup sources
|
||||
set(ironpad_headers ".")
|
||||
|
@ -24,3 +23,11 @@ target_include_directories(IronPad
|
|||
PUBLIC
|
||||
${ironpad_headers}
|
||||
)
|
||||
|
||||
# set project standard
|
||||
set_target_properties(IronPad
|
||||
PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED 20
|
||||
CXX_EXTENSION OFF
|
||||
)
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
#include "IronPad.hpp"
|
||||
|
||||
// only include these header on windows.
|
||||
// in other words, include these header when ironpad enabled.
|
||||
#if defined(IRONPAD_ENABLED)
|
||||
#include <Windows.h>
|
||||
#include <DbgHelp.h>
|
||||
#include <filesystem>
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
#endif
|
||||
|
||||
namespace IronPad {
|
||||
|
||||
|
|
|
@ -13,9 +13,7 @@ if ((NOT EXISTS "${STB_IMAGE_PATH}/stb_image.h") OR (NOT EXISTS "${STB_IMAGE_PAT
|
|||
message(FATAL_ERROR "Invalid stb_image library path.")
|
||||
endif ()
|
||||
|
||||
# set standard
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# set up file list
|
||||
set(libcmo_headers ".")
|
||||
|
||||
set(libcmo_vt_src
|
||||
|
@ -84,7 +82,14 @@ PRIVATE
|
|||
${Iconv_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# add essential build macro
|
||||
# set project standard
|
||||
set_target_properties(LibCmo
|
||||
PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED 20
|
||||
CXX_EXTENSION OFF
|
||||
)
|
||||
# add essential build macro and populate them
|
||||
target_compile_definitions(LibCmo
|
||||
PUBLIC
|
||||
$<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#if !defined(LIBCMO_BUILD_DEBUG) && !defined(LIBCMO_BUILD_RELEASE)
|
||||
#error "You must define LIBCMO_BUILD_DEBUG or LIBCMO_BUILD_RELEASE to indicate build type!"
|
||||
#if !(defined(LIBCMO_BUILD_DEBUG) ^ defined(LIBCMO_BUILD_RELEASE))
|
||||
#error "You must define ONE of LIBCMO_BUILD_DEBUG and LIBCMO_BUILD_RELEASE to indicate build type!"
|
||||
#endif
|
||||
|
||||
// https://stackoverflow.com/questions/2164827/explicitly-exporting-shared-library-functions-in-linux
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
project(Unvirt LANGUAGES CXX)
|
||||
|
||||
# set languages
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# add libcmo
|
||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
||||
# add ironpad
|
||||
#add_subdirectory("../IronPad" "IronPad.out")
|
||||
# add libcmo if not existed
|
||||
if (NOT TARGET LibCmo)
|
||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
||||
endif ()
|
||||
# add ironpad if not existed
|
||||
if (NOT TARGET IronPad)
|
||||
add_subdirectory("../IronPad" "IronPad.out")
|
||||
endif ()
|
||||
|
||||
# setup sources
|
||||
set(unvirt_headers ".")
|
||||
set(unvirt_sources
|
||||
AccessibleValue.cpp
|
||||
CmdHelper.cpp
|
||||
|
@ -27,4 +29,17 @@ PRIVATE
|
|||
LibCmo
|
||||
IronPad
|
||||
)
|
||||
target_include_directories(Unvirt
|
||||
PRIVATE
|
||||
${unvirt_headers}
|
||||
)
|
||||
|
||||
# set project standard
|
||||
set_target_properties(Unvirt
|
||||
PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED 20
|
||||
CXX_EXTENSION OFF
|
||||
)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user