Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update top level CMakeLists.txt to be inline with Aeron #635

Merged
merged 9 commits into from Feb 1, 2019
27 changes: 12 additions & 15 deletions CMakeLists.txt
Expand Up @@ -14,8 +14,8 @@
# limitations under the License.
#

cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
cmake_policy(VERSION 3.0.2)
cmake_minimum_required(VERSION 3.1.3 FATAL_ERROR)
cmake_policy(VERSION 3.1.3)

file(STRINGS version.txt SBE_VERSION_TXT LIMIT_COUNT 1 REGEX "^[0-9]+(\\.[0-9]+)+")
string(REGEX REPLACE "^([0-9]+(\\.[0-9]+)+).*$" "\\1" SBE_VERSION_NUMERIC "${SBE_VERSION_TXT}")
Expand Down Expand Up @@ -44,6 +44,14 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build" FORCE)
endif(NOT CMAKE_BUILD_TYPE)

if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

if(NOT DEFINED CMAKE_CXX_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()

if(SBE_TESTS)
set(SBE_THIRDPARTY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty")

Expand Down Expand Up @@ -73,14 +81,12 @@ endif()
find_package(Threads)

if(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fexceptions -g -Wall -Wpedantic -Wextra -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast")
add_compile_options(-Wall -Wpedantic -Wextra -Wno-unused-parameter)
endif()

if(APPLE)
# -Wall doesn't enable everything we want to see
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-compare")
add_compile_options(-Wsign-compare)
add_definitions(-DDarwin)
elseif(MSVC)
add_definitions(-DWIN32)
Expand All @@ -98,15 +104,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/binaries")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")

set(SBE_JAR "${CMAKE_CURRENT_SOURCE_DIR}/sbe-all/build/libs/sbe-all-${SBE_VERSION_TXT}.jar")
if(EXISTS "${SBE_JAR}")
message("latest SBE jar found: ${SBE_JAR}")
else()
message("Generating SBE jar")
execute_process(
COMMAND ./gradlew build -x test -x check -x javadoc :sbe-all:build
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()

file(GLOB_RECURSE SBE_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/sbe-tool/src/main/java/*.java"
Expand Down
27 changes: 9 additions & 18 deletions sbe-tool/src/main/cpp/CMakeLists.txt
Expand Up @@ -14,28 +14,19 @@
# limitations under the License.
#

file(GLOB_RECURSE CODECS
"uk_co_real_logic_sbe_ir_generated/*.h"
set(CODECS
uk_co_real_logic_sbe_ir_generated/ByteOrderCodec.h
uk_co_real_logic_sbe_ir_generated/FrameCodec.h
uk_co_real_logic_sbe_ir_generated/MessageHeader.h
uk_co_real_logic_sbe_ir_generated/PresenceCodec.h
uk_co_real_logic_sbe_ir_generated/PrimitiveTypeCodec.h
uk_co_real_logic_sbe_ir_generated/SignalCodec.h
uk_co_real_logic_sbe_ir_generated/TokenCodec.h
uk_co_real_logic_sbe_ir_generated/VarDataEncoding.h
)

find_package(Java REQUIRED)

if(NOT(CODECS))
execute_process(
COMMAND
${Java_JAVA_EXECUTABLE}
"-Dsbe.output.dir=${CMAKE_CURRENT_SOURCE_DIR}"
"-Dsbe.target.language=CPP"
"-jar" "${SBE_JAR}"
"../resources/sbe-ir.xml"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)

file(GLOB_RECURSE CODECS
"uk_co_real_logic_sbe_ir_generated/*.h"
)
endif()

add_custom_command(OUTPUT ${CODECS}
COMMAND
${Java_JAVA_EXECUTABLE}
Expand Down