Skip to content

Commit

Permalink
Merge pull request #635 from denizevrenci/cmake
Browse files Browse the repository at this point in the history
Update top level CMakeLists.txt to be inline with Aeron
  • Loading branch information
mjpt777 committed Feb 1, 2019
2 parents aaa76d1 + b43742f commit 01545aa
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 33 deletions.
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

0 comments on commit 01545aa

Please sign in to comment.