view cinst/CMakeLists.txt @ 1084:b8fb6bf7f980

(issue118) Add signature check for cinst.exe and mozilla.exe
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 11 Sep 2014 15:17:39 +0200
parents fc4e1fe4e4d4
children 148014db2f3b e210ecc32d69
line wrap: on
line source
# Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
# Software engineering by Intevation GmbH
#
# This file is Free Software under the GNU GPL (v>=2)
# and comes with ABSOLUTELY NO WARRANTY!
# See LICENSE.txt for details.

cmake_minimum_required(VERSION 2.8)

set(CMAKE_AUTOMOC OFF)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../common)

set(CINST_SOURCES
    ${CMAKE_CURRENT_SOURCE_DIR}/windowsstore.c
    ${CMAKE_CURRENT_SOURCE_DIR}/nssstore_linux.c
    ${CMAKE_CURRENT_SOURCE_DIR}/nssstore_win.c
    ${CMAKE_CURRENT_SOURCE_DIR}/main.c
)
add_executable(cinst ${CINST_SOURCES})

if (WIN32)
   set(WIN_EXTRA_LIBS -lcrypt32 -luserenv -lshell32)
endif(WIN32)

target_link_libraries(cinst
   trustbridge_common
   ${PROFILING_LIBS}
   ${POLARSSL_LIBRARIES}
   ${WIN_EXTRA_LIBS})

install(TARGETS cinst DESTINATION bin)
if (WIN32)
   add_custom_command(
      TARGET cinst
      POST_BUILD
      COMMAND ${CMAKE_STRIP} cinst.exe
   )
   if (NOT RELEASE_BUILD)
      add_custom_command(
         TARGET cinst
         POST_BUILD
         COMMAND ${OSSLSIGNCODE_EXECUTABLE} sign -certs ${CMAKE_SOURCE_DIR}/ui/tests/data/codesign/codesigning.pem
         -key ${CMAKE_SOURCE_DIR}/ui/tests/data/codesign/codesigning.key
         -h sha256 -in ${CMAKE_CURRENT_BINARY_DIR}/cinst.exe
         -out ${CMAKE_CURRENT_BINARY_DIR}/cinst-signed.exe &&
         mv ${CMAKE_CURRENT_BINARY_DIR}/cinst-signed.exe ${CMAKE_CURRENT_BINARY_DIR}/cinst.exe
         )
    endif()
else()
   add_custom_command(
      TARGET cinst
      POST_BUILD
      COMMAND strip cinst
   )
endif()

# ----------------------------------------------------------------------
# Mozilla nss store specific certificate installer:
set(MOZILLA_SOURCES
 ${CMAKE_CURRENT_SOURCE_DIR}/nss-secitemlist.c
 ${CMAKE_CURRENT_SOURCE_DIR}/mozilla.c
 )

if(WIN32 OR NSS_FOUND)
   include_directories(${NSS_INCLUDE_DIRS})
   add_executable(mozilla ${MOZILLA_SOURCES})
   target_link_libraries(mozilla
      trustbridge_common
      ${POLARSSL_LIBRARIES}
      ${NSS_LIBRARIES}
      ${PROFILING_LIBS})
   set_target_properties(mozilla PROPERTIES COMPILE_FLAGS "-std=c99")
   install(TARGETS mozilla DESTINATION bin)

   if (WIN32)
      add_custom_command(
         TARGET mozilla
         POST_BUILD
         COMMAND ${CMAKE_STRIP} mozilla.exe
      )
      if (NOT RELEASE_BUILD)
         add_custom_command(
            TARGET mozilla
            POST_BUILD
            COMMAND ${OSSLSIGNCODE_EXECUTABLE} sign -certs ${CMAKE_SOURCE_DIR}/ui/tests/data/codesign/codesigning.pem
            -key ${CMAKE_SOURCE_DIR}/ui/tests/data/codesign/codesigning.key
            -h sha256 -in ${CMAKE_CURRENT_BINARY_DIR}/mozilla.exe
            -out ${CMAKE_CURRENT_BINARY_DIR}/mozilla-signed.exe &&
            mv ${CMAKE_CURRENT_BINARY_DIR}/mozilla-signed.exe ${CMAKE_CURRENT_BINARY_DIR}/mozilla.exe
            )
       endif()
   else()
      add_custom_command(
         TARGET mozilla
         POST_BUILD
         COMMAND strip mozilla
      )
   endif()
else()
   message(STATUS "WARNING: Could not find nss. Mozilla cert installer will not be build!")
endif()

http://wald.intevation.org/projects/trustbridge/