From 3b0f0b33ea9ae0f5ba54970972bcf4a2c0e07176 Mon Sep 17 00:00:00 2001 From: Rob McDonald Date: Tue, 29 Jul 2014 13:21:28 -0700 Subject: [PATCH] Add ExternalProject_add based build of ap203min example --- .../ExternalProjectBuild/CMakeLists.txt | 80 +++++++++++++++++++ .../cmake/External_STEPCode.cmake | 29 +++++++ 2 files changed, 109 insertions(+) create mode 100644 example/ap203min/ExternalProjectBuild/CMakeLists.txt create mode 100644 example/ap203min/ExternalProjectBuild/cmake/External_STEPCode.cmake diff --git a/example/ap203min/ExternalProjectBuild/CMakeLists.txt b/example/ap203min/ExternalProjectBuild/CMakeLists.txt new file mode 100644 index 00000000..c73d648a --- /dev/null +++ b/example/ap203min/ExternalProjectBuild/CMakeLists.txt @@ -0,0 +1,80 @@ +# +# CMakeLists.txt for AP203 Minimum +# +# This file is released to the public domain. Any part of this file may be +# freely copied in part or in full for any purpose. No acknowledgment is required +# for the use of this file. +# +project(AP203Minimum) +cmake_minimum_required(VERSION 2.8) + +INCLUDE( ExternalProject ) + +set(CMAKE_MODULE_PATH ${AP203Minimum_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + +INCLUDE( External_STEPCode ) + +##### +# Variables ideally set by FindSTEPCode.cmake + +IF(NOT WIN32) + set( STEPCODE_LIBRARIES + ${STEPCODE_INSTALL_DIR}/lib/libbase.a + ${STEPCODE_INSTALL_DIR}/lib/libstepcore.a + ${STEPCODE_INSTALL_DIR}/lib/libstepeditor.a + ${STEPCODE_INSTALL_DIR}/lib/libstepdai.a + ${STEPCODE_INSTALL_DIR}/lib/libsteputils.a + ${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.a + ) +ELSE() + set( STEPCODE_LIBRARIES + ${STEPCODE_INSTALL_DIR}/lib/libbase.lib + ${STEPCODE_INSTALL_DIR}/lib/libstepcore.lib + ${STEPCODE_INSTALL_DIR}/lib/libstepeditor.lib + ${STEPCODE_INSTALL_DIR}/lib/libstepdai.lib + ${STEPCODE_INSTALL_DIR}/lib/libsteputils.lib + ${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.lib + ${STEPCODE_INSTALL_DIR}/lib/libexpress.lib + ${STEPCODE_INSTALL_DIR}/lib/libexppp.lib + shlwapi.lib + ) +ENDIF() + +MESSAGE( STATUS "STEPCODE_INSTALL_DIR: " ${STEPCODE_INSTALL_DIR} ) + +set( STEPCODE_INCLUDE_DIR +${STEPCODE_INSTALL_DIR}/include/stepcode +${STEPCODE_INSTALL_DIR}/include/stepcode/base +${STEPCODE_INSTALL_DIR}/include/stepcode/clstepcore +${STEPCODE_INSTALL_DIR}/include/stepcode/cldai +${STEPCODE_INSTALL_DIR}/include/stepcode/clutils +${STEPCODE_INSTALL_DIR}/include/stepcode/cleditor +${STEPCODE_INSTALL_DIR}/include/schemas/sdai_ap203 +) + +# End of variables ideally set by FindSTEPCode.cmake +###### + + +include_directories( + ${STEPCODE_INCLUDE_DIR} +) + +set(SRCS ../ap203min.cpp) + +set(HDRS ) + +add_executable( ${PROJECT_NAME} ${SRCS} ${HDRS}) + +add_dependencies( ${PROJECT_NAME} STEPCODE ) + +target_link_libraries( ${PROJECT_NAME} + ${STEPCODE_LIBRARIES} +) + +# Local Variables: +# tab-width: 8 +# mode: cmake +# indent-tabs-mode: t +# End: +# ex: shiftwidth=2 tabstop=8 \ No newline at end of file diff --git a/example/ap203min/ExternalProjectBuild/cmake/External_STEPCode.cmake b/example/ap203min/ExternalProjectBuild/cmake/External_STEPCode.cmake new file mode 100644 index 00000000..62df1432 --- /dev/null +++ b/example/ap203min/ExternalProjectBuild/cmake/External_STEPCode.cmake @@ -0,0 +1,29 @@ +ExternalProject_Add( STEPCODE + URL ${CMAKE_CURRENT_SOURCE_DIR}/../../.. + CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DSC_BUILD_TYPE=Debug + -DSC_BUILD_SCHEMAS=ap203/ap203.exp + -DSC_BUILD_STATIC_LIBS=ON + -DSC_PYTHON_GENERATOR=OFF + -DSC_INSTALL_PREFIX:PATH= +) +ExternalProject_Get_Property( STEPCODE SOURCE_DIR ) +ExternalProject_Get_Property( STEPCODE BINARY_DIR ) +ExternalProject_Get_Property( STEPCODE INSTALL_DIR ) + +IF( NOT WIN32 ) + SET( STEPCODE_INSTALL_DIR ${SOURCE_DIR}/../sc-install ) +ELSE() + SET( STEPCODE_INSTALL_DIR ${INSTALL_DIR} ) +ENDIF() + +SET( STEPCODE_BINARY_DIR ${BINARY_DIR} ) + +# SC CMake does not honor -DCMAKE_INSTALL_PREFIX:PATH= +# Consequently, force Debug so it installs in ../sc-install directory +# instead of /usr/local/lib. +# +# SC's own programs fail to build with -DSC_BUILD_SHARED_LIBS=OFF \ No newline at end of file